目录
3.2、基于Redis实现分布式消息队列(2)– 分布式消息队列功能设计
3.3、基于Redis实现分布式消息队列(3)– Redis功能分析
5、分布式消息队列RabbitMQ:四种典型使用场景和代码示例
2、分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
3、分布式事解决方案(2PC、TCC、本地消息表、MQ事务消息、Sagas 事务模型)
5、SpringBoot 集成 Atomikos 实现分布式事务
3、数据库分布式架构——分库分表(及银行核心系统适用性思考)
4、学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
一、分布式知识点
分布式基础
缓存机制
消息机制
搜索机制
分布式ID
分布式锁
分布式SESSION
分布式事务
分布式分页
分布式部署
二、分布式基础知识
- 软件架构设计的六大原则:单一职责原则,开放封闭原则,里氏替换原则,最少知道原则,接口隔离原则,依赖倒置原则。https://blog.csdn.net/u012562943/article/details/76110761
- 软件架构需要考虑的基本原则:https://blog.csdn.net/zyhlwzy/article/details/78085865
- 分布式系统设计理念:https://blog.csdn.net/zyhlwzy/article/details/78104242
- 分布式系统的演进过程:https://www.cnblogs.com/my376908915/p/6813321.html
- 分布式演变历史:https://blog.csdn.net/yuhaiyang_1/article/details/80862914
- 分布式架构的优缺点:https://blog.csdn.net/qq_32297447/article/details/79081112
- 分布式系统核心问题:https://blog.csdn.net/zyhlwzy/article/details/78658002
- 权限管理设计:https://blog.csdn.net/ztchun/article/details/80330298
- 分布式架构设计:https://blog.csdn.net/yuhaiyang_1/article/details/80892492
- 分布式系统设计系列 -- 基本原理及高可用策略:http://www.cnblogs.com/zhengzhamn/articles/5322023.html
- 2
二、分布式-缓存的应用
1、缓存为王:老码农眼中的分布式缓存
https://blog.csdn.net/gitchat/article/details/78913230
2.1、分布式系统--缓存的应用(一)
https://www.cnblogs.com/itfly8/p/5562610.html
2.2 分布式系统--缓存的应用(二)
https://www.cnblogs.com/itfly8/p/5562615.html
2.3 分布式系统--缓存的应用(三)
https://www.cnblogs.com/itfly8/p/5597639.html
3、分布式缓存那些事
https://www.cnblogs.com/softidea/p/5555578.html
4、分布式缓存平台方案
https://blog.csdn.net/weixin_42343424/article/details/85682524
5、分布式缓存Redis使用心得
https://www.cnblogs.com/yangxiaolan/p/5786123.html
6、redis的部署分为三种
第一种是SINGLETON模式,单机模式部署。即只有一台redis,所有数据都放这个redis中。一旦这个redis挂了,数据也就over了第二种是SHAREED模式,共享模式部署。即有多台redis,所有数据放在多台redis中,每个redis保存一部分数据,每个redis数据都不一样,这样某个redis挂了,只有部分数据over了。
第三种是CLUSTER模式,是redis官方提供的一种集群模式部署。任何两台redis之间都是相互连通的。客户端可以与任何一台redis相连接,然后就可以访问集群中的任何一台redis。对其进行存取和其他操作。
7、redis Cluster集群模式
https://blog.csdn.net/wy0123/article/details/79583506
8、深入浅出Redis-redis哨兵集群
https://www.cnblogs.com/jaycekon/p/6237562.html
9、redis集群
https://www.cnblogs.com/cjsblog/p/9048545.html
10、redis缓存与数据库一致性问题解决
https://blog.csdn.net/qq_27384769/article/details/79499373
11、redis系列之数据库与缓存数据一致性解决方案
https://www.cnblogs.com/cxxjohnson/p/8519616.html
12、高并发架构系列:Redis缓存和MySQL数据一致性方案详解
https://my.oschina.net/jiagouzhan/blog/2990423
三、分布式-消息队列
1、为什么使用消息队列(解耦、异步、削峰)
https://blog.csdn.net/alinshen/article/details/80583214
2.1、分布式系统--消息的应用(一)
https://www.cnblogs.com/itfly8/p/5155983.html
2.2、分布式系统--消息的应用(二)
https://www.cnblogs.com/itfly8/p/5156155.html
3.1、基于Redis实现分布式消息队列(1)– 缘起
http://blog.csdn.net/stationxp/article/details/45595733
3.2、基于Redis实现分布式消息队列(2)– 分布式消息队列功能设计
http://blog.csdn.net/stationxp/article/details/45596619
3.3、基于Redis实现分布式消息队列(3)– Redis功能分析
http://blog.csdn.net/stationxp/article/details/45715659
3.4、基于Redis实现分布式消息队列(4)– 代码实现
http://blog.csdn.net/stationxp/article/details/45731413
4、分布式系统基础-消息队列之RabbitMQ
https://blog.csdn.net/zyhlwzy/article/details/78292672?utm_source=blogxgwz7
5、分布式消息队列RabbitMQ:四种典型使用场景和代码示例
https://blog.csdn.net/wqhlmark64/article/details/78870556
四、分布式-搜索机制
五、分布式-分布式ID
1、为什么分布式系统需要用到ID生成系统
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。
概括下来,业务系统对ID号的要求有哪些呢?
ID生成系统的需求
1.全局唯一性:不能出现重复的ID,最基本的要求。
2.趋势递增:MySQL InnoDB引擎使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在主键的选择上面我们应尽量使用有序的主键保证写入性能。
3.单调递增:保证下一个ID一定大于上一个ID。
4.信息安全:如果ID是连续递增的,恶意用户就可以很容易的窥见订单号的规则,从而猜出下一个订单号,如果是竞争对手,就可以直接知道我们一天的订单量。所以在某些场景下,需要ID无规则。
第3、4两个需求是互斥的,无法同时满足。
同时,在大型分布式网站架构中,除了需要满足ID生成自身的需求外,还需要ID生成系统可用性极高。想象以下,如果ID生成系统瘫痪,那么整个业务无法进行下去,那将是一次灾难。
因此,总结ID生成系统还需要满足如下的需求:
1.高可用,可用性达到5个9或4个9。
2.高QPS,性能不能太差,否则容易造成线程堵塞。
3.平均延迟和TP999(保证99.9%的请求都能成功的最低延迟)延迟都要尽可能低。
2、分布式系统唯一ID生成方案汇总
https://www.cnblogs.com/haoxinyue/p/5208136.html
六、分布式锁
1、传统单机锁与分布式锁概念
单进程锁:单进程的系统中,存在多线程同时操作一个公共变量,此时需要加锁对变量进行同步操作,保证多线程的操作线性执行消除并发修改。解决的是单进程中的多线程并发问题。
分布式锁:只要的应用场景是在集群模式的多个相同服务,可能会部署在不同机器上,解决进程间安全问题,防止多进程同时操作一个变量或者数据库。解决的是多进程的并发问题。
2、分布式锁几种实现方式及比较
https://www.cnblogs.com/austinspark-jessylu/p/8043726.html
3、为什么分布式要有分布式锁
https://yq.aliyun.com/articles/621136?utm_content=m_1000010662
4、分布式锁实现的例子
https://blog.csdn.net/weixin_41446894/article/details/86260854
七、分布式事务
1、传统单服务事务与分布式事务
一般事务:解决一个会话过程中,上下文的修改对所有数据库表的操作要么全部成功,要不全部失败。所以应用在service层。解决的是一个会话中的操作的数据一致性。
分布式事务:
解决一个联动操作,比如一个商品的买卖分为:
(1)添加商品到购物车
(2)修改商品库存-1
此时购物车服务和商品库存服务可能部署在两台电脑,这时候需要保证对两个服务的操作都全部成功或者全部回退。解决的是组合服务的数据操作的一致性问题。
2、分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
https://www.cnblogs.com/takumicx/p/10021538.html
3、分布式事解决方案(2PC、TCC、本地消息表、MQ事务消息、Sagas 事务模型)
https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html
4、微服务架构下分布式事务解决方案——阿里GTS
https://www.cnblogs.com/jiangyu666/p/8522547.html
5、SpringBoot 集成 Atomikos 实现分布式事务
https://blog.csdn.net/weixin_41446894/article/details/86260854
八、分布式Seesion
1、分布式集群系统下的高可用session解决方案
https://www.cnblogs.com/scwanglijun/p/3763975.html
2、分布式session采用redis实现例子
https://my.oschina.net/shxjinchao/blog/1927565
九、分布式数据库
1、分布式数据库的架构演变之路
https://www.cnblogs.com/adeng/p/9012301.html
2、分布式数据库概述
http://blog.jobbole.com/98523/
3、数据库分布式架构——分库分表(及银行核心系统适用性思考)
https://www.douban.com/note/629680941/
4、学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
https://www.cnblogs.com/joylee/p/7513038.html
5、分布式数据库中间件Mycat百亿级数据存储
https://www.cnblogs.com/xifenglou/p/8409082.html
6、大型分布式数据库中间件MyCat的安装与使用
https://blog.csdn.net/xlgen157387/article/details/77585286
7、分布式数据库管理
https://www.jianshu.com/p/cd726b32342e
十、分布式部署
分布式部署:
十一、分布式系统核心问题
1、分布式核心问题
https://blog.csdn.net/zyhlwzy/article/details/78658002
2.1、分布式系统常见问题总结(一)
https://www.cnblogs.com/xuwc/p/9139164.html
2.2、分布式系统常见问题总结(二)
https://www.cnblogs.com/xuwc/p/9152236.html
十二、分布式实战
- 分布式:Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错):https://www.cnblogs.com/chinway/p/6382762.html
- 分布式实战1:https://blog.csdn.net/qq_27384769/article/details/79439782
- spring cloud 实战篇:https://blog.csdn.net/ylimh_hmily/article/category/7175787/3
- 分布式session基于redis的实现:https://www.cnblogs.com/smallSevens/p/6763114.html
- 实例:https://juejin.im/post/5ad85368f265da50472fc95a
- dubbo+springMVC+Mybatis:https://www.cnblogs.com/jtlgb/p/7698453.html
- 实例:https://blog.csdn.net/yeness/article/details/52823503
- 实例:http://zhiliao666.iteye.com/blog/2275068
- 实例:https://blog.csdn.net/qq_24091983/article/details/80019773
- 实例:https://blog.csdn.net/xmtblog/article/details/79355504
- 例子:https://www.cnblogs.com/softidea/p/5824254.html
- 2