Photinia-Milk / Dolo-Back-End

A course selection website with dynamic self-adapting workflow system developed by Vue, Spring Boot and Mysql
4 stars 1 forks source link

The key of this course selection system system #2

Open KONY128 opened 4 years ago

KONY128 commented 4 years ago

English Edition

This system is only widely accessed when it comes to the time to select courses. But, normally this system runs at a very small workload.

Therefore, if the back end needs to have sufficient capacity to handle sudden and large volumes of traffic.

This may consider server clustering, CDN acceleration, load balancing, code optimization, database optimization, microservices, caching, service re-start and data backup.

At the same time, it is worth noting that the peak server access, we need a lot of computing resources, but in normal times, the use of such computing resources is very wasteful.

We also need to focus on how to adapt to elastic systems based on load, so that our operating costs are reduced.

In conclusion, the key of this course selection system system should be these two:

  1. Self-adapting workload - Dynamically adjust cluster resources based on server load, saving costs.

  2. High concurrent capacity - Implements various optimizations and design a high-robust load architecture to ensure that user loads can be carried properly in high concurrency.


Chinese Edition

这个综合选课系统只在学生选课时才会被大量访问。但日常情况下,这个系统的负载量其实很小。

因此,如果后端需要有足够的容载能力,以应对突如其来的大量访问量。

这可能要考虑做服务器集群、CDN加速、负载均衡、代码优化、数据库优化、微服务、缓存、服务再启动和数据备份。

同时,值得注意的是,服务器访问高峰期,我们需要很多的运算资源,但正常情况下,运用这么多的运算资源是很浪费的。

我们还需要着重考虑如何根据负载做自适应的弹性系统,让我们的运行成本降低。

总的来说,这个系统的最关键部分应该在以下两点:

  1. 弹性地自适应负载 - 根据服务器负载动态地调整集群资源,节省成本。

  2. 高并发的容载能力 - 做多方面的优化,设计高鲁棒性的负载架构,保证在高并发的情况下能够正常承载用户负载。

KONY128 commented 4 years ago

Now, we have considered these but not implemented. We'll try in the future:

  1. Combine Redis and Mysql, using Redis as a caching system.

  2. Search for self-adapting workload solution.

  3. Design an good infrastructure for cluster configuration

  4. Use Docker + Kubernetes to work as a loadbalancer

If we make any progress, we will continue to release in this issue.


现在,我们考虑了这些(我们还没有实现),我们会在未来尝试实现它们:

  1. 结合Redis和Mysql,用Redis做缓存系统

  2. 寻找弹性布局、自适应负载的解决方案

  3. 设计一个良好的集群配置的基础架构。

  4. 使用Docker和Kubernetes做负载均衡

如果我们有任何进展,我们将会在这个issue里持续发布