【笔记】Cluster模式潜在问题及解决方案、Web服务综合解决方案
任务一:一致性Hash问题及解决方案
分布式和集群
分布式一定是集群,但集群不一定是分布式
- 一致性Hash算法
比如在安全加密领域的MD5,SHA等加密算法,在数据存储和查找方面有hash表,以上都用到了hash算法。
主要用在在数据存储和查找领域,Hash表的查找效率非常高
例如 list[1,5,7,6,3,4,8]
顺序查找法
二分查找:排序之后折半查找,相对于顺序会提高一些效率
直接寻址法:直接把数据和数组的下标绑定到一起,查找的时候直接array[n]取出数据
- Hash算法应用场景
Hash算法在分布式集群架构中的应用场景
- 普通Hash算法存在的问题
- 一致性Hash算法
- 手写实现一致性Hash算法
- Nginx配置一致性Hash负载策略
任务二:分布式集群时钟同步问题及解决方案
集群时钟服务器同步配置
任务三:分布式ID问题及解决方案
为什么需要使用分布式ID(分布式集群环境下的全局唯一ID)?
分表之后ID不能重复,因此不能使用主键递增。
·UUID(Universally Unique identifier)产生相同UUID并造成错误的概率非常低
·独立数据库的自增id
·SnowFlake 雪花算法
·redis自增维护全局ID
任务四:分布式调度问题及解决方案
- 定时任务场景
- 什么是分布式调度
- 分布式调度与定时任务的区别
- 定时任务的实现方式
- Elastic-job
任务五:Session一致性问题及解决方案
Session共享和session保持,或者叫session一致性
·Nginx的IP_Hash策略
使得同一IP每次访问的都是相同的服务器
·Session复制(不推荐)
通过tomcat修改配置达到session之间的复制
·Session共享,集中存储
使用redis对session进行统一管理