消息队列与python

基于生产者消费者模式

一、kafka

运行于zookeeper之上,从而实现整个集群化的管理

1.broker(服务端)

默认9092端口

持久化存储到disk中

基于磁盘存储

可以建多个充当集群

2.topic(队列)

区分数据

3.partition(分区)

topic内部

物理层面多个分区平均分散在多个broker上

4.备份,副本

备份存于其他broker

备份以分区为单位

5.版本

apache和confluent

6.工具

kafka-python 不稳定,会丢数据

confluent-kafka-python 较稳定

7.安装

依赖于librdkafka,先安装

配置

桥接 需要做端口映射 ,kafka 连接zookeeper:端口  

一个zookeeper相当于一个节点

一个kafka一个brokerID

8.生产者

有回调

需要指明topic

9.消费者

需要指明topic

每个消费者必须有一个组 group

10.特征

消费分区是无序的,消费分区内的消息是有序的,整体是无序的

指定分区进行生产消费

subscribe订阅消费数据时,同一消费者组同一条数据, 只会被消费一次

assign seek 消费数据时可以消费多次

一个消费者可同时消费多个topic

对于topic的消费,消费者的数量应不多于topic分区的数量,否则多余的消费者将必定无法接受到消息

同一个分区的数据只会被一个消费者消费

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容