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

比如在 Elasticsearch 中,每个索引有一个或多个分片,索引的数据被分配到各个分片上,相当于一桶水用了 N 个杯子装。
分片有助于横向扩展,N 个分片会被尽可能平均地(rebalance)分配在不同的节点上。

partition
partition的概念经常在 Kafka 中可以看到,在 kafka 中 topic 是一个逻辑概念,从分布式队列的角度看,topic 对使用者来说就是一个队列,topic 在 kafka 的具体实现中,由分布在不同节点上的 partition 组成,每个 partition 就是根据分区算法拆分的多个分区,在 kafka 中,同一个分区不能被同一个 group 下的多个 consumer 消费,所以一个 topic 有多少 partition 在一定意义上就表示这个 topic 具有多少并发处理能力。

在 Amazing 的分布式数据库DynamoDB中,一张表在底层实现中也被分区为不同的 partition。
load balance
负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
比如 nginx 的负载均衡,通过不同的负载均衡分配策略,将 http 请求分发到 web 应用的不同节点之上,从而提高应用的并发处理能力。
比如 dubbo 的客户端负载能力,可以将 dubbo 请求路由到具体的 producer 提供节点上,负载均衡是一个完善的 RPC 所应该具有的能力。
在 Spring Cloud 的体系中 Robbin 组件可以通过 Spring Cloud 的各微服务之间通信的负载均衡分配问题,依旧是将请求分发到集群中的不同节点上去。
分的策略
无论是分区还是分片,还是分区路由,其实都有一些通用的分区算法,以下的概念可能很多同学都在不同的领域看到过,如上面看到的反向代理服务器 nginx 中,如分布式消息队列 kafka 中,如 RPC 框架 Dubbo 中,这有时候会让很多同学感到懵。
其实无论在什么领域中,你只要抓住它在完成的核心功能上就可以理解,它们就是在考虑如何分的问题,把处理请求(即计算)如何均匀地分到不同的机器上,把数据如何分配到不同的节点上。
从大的方向看分有两种策略,一种可复刻,一种不可复刻。
可复刻,这种策略根据一定算法分配计算和数据,在相同的条件下,无论什么时间点得出的结果相同,因此对于相同条件的请求和数据来说是可复刻的,在不同时间点相同的请求和数据始终都在统一节点上。这种策略一般用于有数据状态在情况。
不可复刻,这种策略使用全随机方式,即使在相同的条件下,不同时间点得出的结果也不一致,因此也是不可还原的,如果只是为了可还原,如果通过元数据记录已经分配好的数据,之后需要还原时通过元数据就可以准确的得知数据所在位置了。
不念:这么神奇么?我想看看不同系统都有什么策略。
Dubbo的负载均衡
Dubbo 是阿里开源的分布式服务框架。其实现了多种负载均衡策略。
相关阅读
-
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年推出的笔记本电脑,相对来说其配置比较


