首先确定并发量是多少?一秒内流量多少,高峰的时候流量多少?
微服务架构如何设计.
前期访问量很小的情况,可能设计很简单的架构就可以了,但是你要想着以后用户量上来就会,如何更方便扩容,要提前做好规划.
1.dns做域名解析打到不同ngnix机器上
2.ngnix反向代理请求分发不同的ngnix
3.ngnix通过openrestry去访问redis的数据
4.把独立的服务抽取出来做微服务
5.使用mq做削峰填谷,消费数据,写入mysql数据库
6.把mysql的数据通过canal同步的es
7.把业务表数据通过水平拆分,存储到不同的数据
8.对数据量做主从部署.
需要提前考虑的有:
1.根据业务抽取成单独的服务,这个微服务随着用户和访问量上升,可以轻松添加扩容
2.redis集群部署,可以起16个redis实例.以后扩容的时候就可以直接把槽放在其他的实例上,起的空实例不会影响系统性能
3.根据业务,判断哪些数据量会成倍增长,要对这些表提前做好分库分表,以后扩容也是很方便的事情
4.使用容器化技术docker,也容器编排工具k8s.可以方便部署运维和监控.