kafk是一种纯分布式的中间件。
首先,简单的kafka集群是长这样的。
那么如何解决节点宕机的问题呢。kafka有一个副本的概念,每一条数据都会在另一个节点中存在一个副本。将两份数据用leader和follower来区分,无论是写入还是消费操作都是通过leader,数据会实时同步给相应的follwer。
那么这个时候如果leader节点发生了宕机,kafka会感知到这个节点死了,那么会将将follower节点自动升级为leader节点,这样就保证了kafka的高可用性。
kafk是一种纯分布式的中间件。
首先,简单的kafka集群是长这样的。
那么如何解决节点宕机的问题呢。kafka有一个副本的概念,每一条数据都会在另一个节点中存在一个副本。将两份数据用leader和follower来区分,无论是写入还是消费操作都是通过leader,数据会实时同步给相应的follwer。
那么这个时候如果leader节点发生了宕机,kafka会感知到这个节点死了,那么会将将follower节点自动升级为leader节点,这样就保证了kafka的高可用性。