pv、uv、ip,tps、qps、rps术语
参考资料:
https://blog.youkuaiyun.com/lvqingyao520/article/details/78756959
===========================================================================================
常见的服务器架构
https://blog.youkuaiyun.com/weixin_38653290/article/details/84782095
===========================================================================================
单体应用
->部署多态服务器(通过nginx做负载均衡)
->数据库读写分离
->具体某一个模块的
数据库读写分离(如果某一个模块读写操作都很多,把这个模块的数据库单独分出来)
分库分表:
垂直分库,水平分表(hash(优点:均衡,缺点:扩容),range,list;根据userId,orderId,时间等)
(mysql单表容量400-500万,一般100-200万,就考虑分表)
分表:根据业务采用canal同步不同的数据
两个系统通信方式:Rest,RPC框架等等。
尽量不要分布式事物,考虑其它方案
mycat proxy 代理层 维护成本高
jstrom
===========================================================================================
为什么拆分微服务 ?
随着业务量增加,项目越来越庞大,复杂,每修改一个功能都有可能会影响到整个项目的运行。
1. 即使改一个很小的功能,都要整个项目测试;严重的加大的工作量。
2. 项目臃肿,关系复杂、代码耦合,后期维护难度大,甚至无法维护。
3. 影响项目的迭代速度。(修改一个小功能就上线,有点儿浪费,等修改多了上线又影响用户的体验和升级速度)
拆分之后的好处:
1. 拆分之后的每个系统可以单独部署。
2. 业务简单,方便扩容;有大量可重用的模块便于开发新的业务。
3. 专人专事,让技术人员更加专注于某一个领域。
===========================================================================================
分布式session?
待续...