读书_w3c架构师02通用设计与方法论
配置”也有架构演进?看完深有痛感
https://www.w3cschool.cn/architectroad/architectroad-configuration-center.html
总结
解决什么问题?
配置导致系统耦合,架构反向依赖。
什么痛点?
上游痛:扩容的是下游,改配置重启的是上游
下游痛:不知道谁依赖于自己
配置架构如何演进?
一、配置私藏
二、全局配置文件
三、配置中心
DNS在架构设计中的巧用
架构设计中,dns有它独特的功能和作用:
dns轮询,水平扩展反向代理层
去掉反向代理层,利用dns实施负载均衡
智能dns,根据用户ip来就近访问服务器
session一致性架构设计实践
保证session一致性的架构设计常见方法:
1 | session同步法:多台web-server相互同步数据 |
对于方案3和方案4,个人建议推荐后者:
1 | web层、service层无状态是大规模分布式系统设计原则之一,session属于状态,不宜放在web层 |
计数系统架构实践一次搞定
这个方案叫做“count”计数法,在数据量并发量不大的情况下,最容易想到且最经常使用的就是这种方法,但随着数据量的上升,并发量的上升,这个方法的弊端将逐步展现。
“count”计数法方案,可以总结为:
1 | 多条消息多次查询,for循环进行 |
这个方案称为“计数外置”,可以总结为:
1 | 通过counting-service单独保存计数 |
计数外置,本质是数据的冗余,架构设计上,数据冗余必将引发数据的一致性问题,需要有机制来保证计数系统里的数据与业务系统里的数据一致,常见的方法有:
1 | 对于一致性要求比较高的业务,要有定期check并fix的机制,例如关注计数,粉丝计数,微博消息计数等 |
小小的计数,在数据量大,并发量大的时候,其架构实践思路为:
1 | 计数外置:由“count计数法”升级为“计数外置法” |
即:
优化为:
数据库扩展性优化,可以由列扩展优化为行扩展
优化为:
架构设计和高并发系列
读书_大型网站技术架构01_李智慧
读书_大型网站技术架构02_李智慧
读书_大型网站技术架构03_李智慧
读书_高并发设计40问之一基础
读书_高并发设计40问之二数据库
读书_高并发设计40问之三缓存
读书_高并发设计40问之四消息队列
读书_高并发设计40问之五分布式服务
读书_w3c架构师01通用设计与方法论
读书_w3c架构师02典型架构实践
读书_w3c架构师03数据库与缓存
分布式事务
高并发之缓存
高并发之降级
高并发之限流
数据库_读写分离
消息队列_01消息队列入门
消息队列_02rabbitMQ入门
消息队列_03rabbitMQ安装和使用