架构300讲笔记101-200集
101结合操作系统如何理解java代码怎么运行
102 大key引发的事故
大key指的是百kb左右的键值对。
105 MGR集群部署
107 不用MQ如何保障消息传递的可靠性
109 服务化架构、SOA、微服务到底有什么关系
单点:all in one, 优点:简单; 缺点:不具备高可用,一台宕机玩完。 集群:多个单点,或多微服务模块。 优点: 缺点: 分布式:a+b+c = 单点,分散部署在不同的机器上的。 soa:面向服务架构。 微服务:a=b+c,d=e+f,g=h+i,将abc拆分成6个微服务。
微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势。
面向服务架构如果一句话来谈SOA和微服务的区别,即微服务不再强调传统SOA架构里面比较重的ESB
110 proxySQL实现读写分离
111 什么是高可用架构脑裂问题,redis如何解决
主服务器和sentinel网络出现了问题,会重新选举出master节点, 解决方案:两个参数 min-slaves-to-write 配置主库进行数据 同步时最小从库数量 min-slaves-max-log设置主从库之前数据复制的最大延迟
112 Mysql读写分离后先写后查如何保障一致性
方案一,先写后查,字段全量写入不自动生成。 方案二,延迟查询,不好预估预留时间,可以作为临时方案。 方案三,读写分离框架,如sharding jdbc等。 方案四,MGR全同步复制,强一致性。
114 使用Redis 6客户端缓存解决多级缓存一致性
待完善,先了解多级缓存后补充
115 为什么不建议使用Docker来部署Mysql
应用场景,数据存储节点是少量而稳定的,大多数场景并没有灵活扩容的需求。 待完善
116 如何优雅保存mysql数据变更历史
工具:阿里的canal 存储数据库MongoDB 将订单id%n将json写入分片
117 遇到瞬时流量洪峰如何保证系统不会被冲垮
场景:整点秒杀、春运抢票等等场景。 工具:阿里的Sentinel 流控规则采取预热模式,warm up,逐渐提升阈值来给系统留出缓冲时间。 使用方法可以参考我之前的一篇博客
118 DDD
120 Mysql分库分表的标准
单表数据量超过1000w,或者单表数据文件 .ibd文件超过20GB。 分表方法: 范围法:假设有300个数据,1-100 第一个表,101-200第二个表,201-300第三个表。 哈希法:id取模3,进行分表。 单库多表:有效缩小磁盘的扫描范围。 多库多表:提高并行能力。 挑战: 分布式事务问题,跨库join关联查询,跨节点分页查询问题,全局主键id问题,扩容问题。
121 为什么需要分布式锁
参考
122 Redisson
139 rpc和rest选择
选择rpc的几个考量,性能、对内。 选择rest几个考量,简单,对外。