分布式系统是一种基于网络的软件系统。由于软件的特点,分布式系统具有高度的内聚性和透明性。因此,网络与分布式系统的区别更多地在于高级软件(尤其是操作系统),而不是硬件。内聚性是指每个数据库的高度自治的分布式节点与本地数据库管理系统。透明性意味着每个数据库分发节点对用户的应用程序都是透明的,并且看不到它是本地的还是远程的。在分布式数据库系统中,用户并不觉得数据是分布式的,也就是说,用户不需要知道关系是否被划分,是否有副本,数据存储在哪个站点,事务执行在哪个站点。
分布一致性的基本理论
Cap/base:大型网站一致性理论的基础理论
让我们来看看cap,分布式系统的基本理论。
上限理论:
一致性(c):所有节点同时读取相同的数据。成功写入数据后,所有节点都将看到新数据。
可用性(a):确保每个请求都收到反馈,无论是成功还是失败。这是数据的可用性,关键是系统必须响应。
分区容忍度(P):即使系统中存在一些问题或缺少消息,系统也可以继续运行。
但分布式系统不能同时满足上述三项要求。一般来说,许多分布式系统在设计中的选择是放弃一定的一致性而选择AP。
让我们看看基础:
基本可用:无法允许分区
软状态:接受一段时间内不同步的状态
最终一致性:确保最终数据的状态一致
因此,当我们选择AP时,对于C,我们采用的策略是确保最终的一致性。
强一致性:所有节点同时读取相同的数据。
最终一致性:以牺牲部分一致性为代价,数据中存在不一致是可以接受的,但通过重试或其他方式,可以确保数据最终达到一致状态
Paxos协议,它比两阶段提交协议轻,以确保一致性。
在分布式系统中,它面临着不同的问题,如网络问题、进程或机器挂起、进程超时等。这将导致重复的消息,在一段时间内无法到达。Paxos协议是解决分布式系统一致性问题的一种方法。
使用Paxos协议有一个前提,即不存在拜占庭式的一般问题。简而言之,它要有一个可靠的通信环境,在这个环境中,所有信息都是准确的,没有被篡改。
Paxos协议的解析过程比较复杂,这里不介绍。如果你感兴趣,你可以学习。帕索斯的核心原则是少数服从多数。
但是在Paxos协议中存在一个问题。如果系统中有人提出建议,可能会发生冲突和失败。然后每个人都在再试。再试一次仍可能导致失败。这会导致一个活锁。
解决方案是在整个集群中设立一个领导者,提出所有的建议,以避免冲突。新的问题是,如果领导出了问题,该如何处理。
以上是我对Java大型互联网体系结构的总结——大型网站分布式一致性的基本理论问题和优化,您必须掌握。我希望你知道什么是Java大型Internet架构——大型网站分布式一致性的基本理论问题和优化,你必须掌握。感觉收获可以一点一点的收藏转发波哦,谢谢各位大佬的支持!
一、写更多,敲更多的代码。良好的准则和扎实的基础知识必须来自实践
二、你可以去百度搜索腾讯教室图灵学院视频了解Java架构的实际案例,这是相当不错的。
最后,在座的各位,谢谢你们的耐心。我希望在成为一个更好的java程序员的路上,我们可以一起学习和进步。