kafka

SDN控制器

一、学习了SDN所涉及的DMQ(分布式消息队列)

1.DMQ总体架构

DMQ基于Kafka架构建立,Kafka是一种分布式的,消息发布/订阅系统,图中包含了kafka架构的主要的几大部件。

a)Producer:消息的生产者,把消息push到brokers

b)Brokers:说白了就是服务器集群,由zookeeper集群管理

c)Topic:每个topic逻辑上对应一个队列,producer关心消息push到哪个Topic,consumer关心自己订阅了哪个topic。

d)consumer

group和consumer:每个consumer属于一个consumer group。发送到Topic的消息,只会被订阅此Topic的每个group中的一个consumer消费。

e)Partition:从吞吐率考虑,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。

f)Replicas: partition的副本存在多个broker上,用于备份。

g)Leader和follower:相当于主从关系,producer和consumer只跟leader交互,follower通过从leader pull消息实现同步。

h)Zookeeper:kafka通过zookeeper来存储集群的meta信息。

2.DMQ使用Kafka的原因,Kafka的优势

Kafka优势:

l支持跨节点的订阅/发布能力

l异步通信

l高可靠:数据备份机制、生产可靠(ACK机制、消息重传机制)、消息可靠

l高性能:批量发送、异步落盘、顺序写盘、Sendfile技术、分区技术

3.重点理解

lTopic是个逻辑概念,partition是个物理概念,一个Topic分成一个或多个Partition,当producer发布消息时可以均匀分布到多个Partition。这样有利于提高吞吐率。

l消息是顺序写入,通过append的方式加入partition,这样有利于告诉的提取消息。

lZookeeper总的来说是为了在各节点之间保证状态同步,保证数据的可靠性和一致性。

lproducer和consumer直接关联的是Topic。

l一整个消息的发布和订阅是异步进行的,producer是push消息到partition,consumer是自己去fetch消息进行处理的。

4.消息中间件的意义

消息中间件可以支持和保障分布式程序之间同步和异步收发消息,在SDN控制器中,大AC和小AC组成了一个分布式应用程序,消息中间件保证了组件之间可靠的异步通信,降低了大小AC之间的耦合度,从而提高了系统的可用和扩展性。

5.DMQ使用场景举例

你可能感兴趣的:(kafka)