2020-12-25 Kafka

1、相关的概念扫盲

生产者与消费者统称为客户端。有客户端自然也有服务端。kafka的服务器端由被称为Broker的服务进程构成,即一个Kafka集群由多个broker组成。Broker来负责接收和处理客户端发送过来的请求,以及对于消息进行持久化。虽然多个Broker分散运行在不同的机器上,这样如果集群中某一个机器宕机,即使在他上面的所有 Broker 进程都挂掉了。其他机器上的 Broker 也依然能够对外提供服务。这其实就是Kafka提供高可用的手段之一。

实现高可用的另外一个手段即使备份机制。备份的思想非常的简单,就是把相同的数据拷贝到多台机器上,而这些相同的数据拷贝在Kafka中被称为副本。好吧,其实在整个分布式的系统里面好像都叫这个名字,副本的数量是可以配置的。这些副本保存着相同的数据,却有不同的角色与作用。Kafka定义了两类副本:领导者副本和追随者副本。前者对外提供服务,这里的对外指的是与客户端进行交互。而后者只是被动地追随领导者副本而已,不能与外界进行交互。当然了,你可能知道在很多其他系统中追随者的副本是可以对外提供服务的,比如MySQL的从库是可以处理读操作的。但是在Kafka中追随者副本不会对外提供服务。对了,一个有意思的事情是现在已经不提倡使用Master-Slave类指定这种主从的关系了。毕竟Slave有奴隶的意思。美国有这种严禁种族歧视的国度,这种表述有些政治不正确了,所以目前大部分的系统都改成了Leader-Follower了。

副本的工作机制也很简单:生产者总是向领导者副本写消息;消费者总是从领导者的副本读消息。至于追随者的副本,他只是做一件事情。向领导者发送请求,请求领导者把最新的生成的消息发给他。这样他能够保持与领导者的同步。

你可能感兴趣的:(2020-12-25 Kafka)