编程语言
首页 > 编程语言> > 如何实现java代码,涨薪7K!

如何实现java代码,涨薪7K!

作者:互联网

CAP原则

在分布式系统要满足CAP原则,一个提供数据服务的存储系统无法同时满足:数据一致性、数据可用性、分区耐受性。

image.png

C数据一致性:所有应用程序都能访问到相同的数据。 A数据可用性:任何时候,任何应用程序都可以读写访问。 P分区耐受性:系统可以跨网络分区线性伸缩。(通俗来说就是数据的规模可扩展) 在大型网站中通常都是牺牲C,选择AP。为了可能减小数据不一致带来的影响,都会采取各种手段保证数据最终一致。

一致性算法

一致性Hash算法 一致性Hash算法可以根据不同的属性参数(通常是IP和端口号),生成一串不相同的Hash值,并将Hash值转换成0-2^32-1的整数, 不同范围的值由不同服务器进行处理。(B-C之间的由B处理)。

image

Raft算法和Paxos算法

Raft算法是在Paxos算法的基础上的进行优化。 Raft在Paxos的基础上主要做了两个方向的优化: 1.将复杂的分布式共识问题拆分成领导选举、日志复制和安全性三个问题 2.压缩状态空间:相对于Paxos施加了更合理的限制,减少了系统状态过多而产生的不确定因素。

领导选举(具体以zookeeper举例) 其基本的特性有:

zookeeper在选举过程中的角色:领导者、跟随者、观察者、竞选者

日志复制 在共识算法中,所有服务器节点都会包含一个有限状态自动机,名为复制状态机(replicated state machine)。每个节点都维护着一个复制日志(replicated logs)的队列,复制状态机会按序输入并执行该队列中的请求,执行状态转换并输出结果。可见,如果能保证各个节点中日志的一致性,那么所有节点状态机的状态转换和输出也就都一致。

image

可见,日志由一个个按序排列的entry组成。每个entry内包含有请求的数据,还有该entry产生时的领导任期值。每个节点上的日志队列用一个数组log[]表示。

领导节点选举出来后,集群就可以开始处理客户端请求了。当客户端发来请求时,领导节点首先将其加入自己的日志队列,再并行地发送AppendEntries RPC消息给所有跟随节点。最终实现节点数据的一致性。

安全性 Raft安全保障机制有5种:

Raft算法和Paxos算法在分布式中的使用

Consul vs Eureka vs Zookeeper

image.png

注: CAP: 数据一致性、数据可用性、分区耐受性 AP: 牺牲强一致性,部分节点宕机,不会影响正常工作的节点。 CP: 牺牲数据可用性,为了保证数据的一致性,当一台机器出现故障时,所有节点的数据都不能使用。

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都都可提供源文件给每位爱学习的朋友,获取链接:戳这里免费下载

image.png

qq.com/doc/DSmxTbFJ1cmN1R2dB)**

[外链图片转存中…(img-jAPFYNWM-1624981680205)]

标签:java,7K,涨薪,算法,一致,一致性,日志,数据,节点
来源: https://blog.csdn.net/m0_58846633/article/details/118346448