从零开始理解分布式系统架构与设计原理(5)
从零开始理解分布式系统架构与设计原理

Random LoadBalance
随机,可以按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
RoundRobin LoadBalance
轮询,按公约后的权重设置轮询比率。存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
ConsistentHash LoadBalance
一致性 Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
Kafka的分区分配策略
Kafka 中提供了多重分区分配算法(PartitionAssignor)的实现:
RangeAssignor

RangeAssignor 策略的原理是按照消费者总数和分区总数进行整除运算来获得一个跨度,然后将分区按照跨度进行平均分配,以保证分区尽可能均匀地分配给所有的消费者。
对于每一个 Topic,RangeAssignor 策略会将消费组内所有订阅这个 Topic 的消费者按照名称的字典序排序,然后为每个消费者划分固定的分区范围,如果不够平均分配,那么字典序靠前的消费者会被多分配一个分区。
RoundRobinAssignor
RoundRobinAssignor 的分配策略是将消费组内订阅的所有 Topic 的分区及所有消费者进行排序后尽量均衡的分配(RangeAssignor 是针对单个 Topic 的分区进行排序分配的)。
StickyAssignor
从字面意义上看,Sticky 是“粘性的”,可以理解为分配结果是带“粘性的”——每一次分配变更相对上一次分配做最少的变动(上一次的结果是有粘性的),其主要是为了实现以下两个目标:
- 分区的分配尽量的均衡
- 每一次重分配的结果尽量与上一次分配结果保持一致
不念:哇,看来优秀的系统都是相通的。
副本
副本是解决分布式集群高可用问题的。
在集群系统中,每个服务器节点都是不可靠的,每个系统都有宕机的风险,如何在系统中少量节点失效的情况下保证整个系统的可用性是分布式系统的挑战之一。
副本就是解决这类问题的方案。副本同样也可以提高并发处理能力,比如数据在不同的节点上可以读写分离,可以并行读等。
在这里其实也有很多说法,如 Master-Salve、Leader-Follower、Primary-Shard、Leader-Replica 等等。

MySQL的主从架构
目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。
这既可以实现数据库的读写分离,从而改善数据库的负载压力,也可以提高数据高可用,多份数据备份降低了数据丢失的风险。
相关阅读
-
ntldr is missing无法开机 ntldr is missing修复解决方法
如果想知道ntldr is missing修复解决方法的话题,关于ntldr is missing无法开机 ntldr is missing修复解决方法,继续往下看吧! ntldr is missing无法进入系统有很多原因导致,一般情况下就是系统文件丢失
-
win10控制面板里面没有语言 windows10控制面板没有语言选项怎么办
今天小编介绍windows10控制面板没有语言选项怎么办方面的讲解,关于win10控制面板里面没有语言 windows10控制面板没有语言选项怎么办,接下来就是全面介绍。 当我们在使用win10系统的时候,如
-
Linux chmod命令:详解如何给文件夹赋予权限
小编为网友们解答Linux及chmod命令方面的内容,接下来一起来看看吧。 1. 引言 在Linux操作系统中,文件和文件夹的权限管理非常重要,它可以有效地保护用户数据的安全。 本文将详细介绍如何
-
华硕vm591ur参数 华硕VM591U是否能装win11详细介绍
今天分享:华硕VM591U是否能装win11详细介绍的相关经验,关于华硕vm591ur参数 华硕VM591U是否能装win11详细介绍,一起来了解了解吧。 华硕VM591U是一款2016年推出的笔记本电脑,相对来说其配置比较


