Kafka生成者、消费者和Broker拓扑结构图及概念详解
2019年3月19日
Kafka
4,786 views
1
阿里云:2核2G服务器5M带宽58元/年、2核4G服务器188元、4核8G服务器346元一年、8核16G5M...
腾讯云:2核4G服务器8M带宽70元/年,更多1c2g/2c4g/2c8g/4c8g/8c16g/16c32g... Kafka是由Apache开发的一个开源流处理平台,Kafka是一种高吞吐量的分布式发布订阅消息系统,码笔记分享Kafka拓扑结构图及Kafka中的生成者、消费者和Broker的概念及作用:
Kafka结构拓扑图
Kafka结构拓扑图
Kafka的优势
快速:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作;
可伸缩:在一组机器上对数据进行分区和简化,以支持更大的数据;
持久:消息是持久性的,并在集群中进行复制,以防止数据丢失;
设计:Kafka提供了容错保证和持久性。
Kafka生成者、消费者和Broker的意义
名词
解释
Producer
消息的生成者
Consumer
消息的消费者
ConsumerGroup
消费者组,可以并行消费Topic中的partition的消息
Broker
缓存代理,Kafka集群中的一台或多台服务器统称broker.
Topic
Kafka处理资源的消息源(feeds of messages)的不同分类
Partition
Topic物理上的分组,一个topic可以分为多个partion,每个partion是一个有序的队列。partion中每条消息都会被分配一个 有序的Id(offset)
Message
消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息
Producers
消息和数据生成者,向Kafka的一个topic发布消息的 过程叫做producers
Consumers
消息和数据的消费者,订阅topic并处理其发布的消费过程叫做consumers
Producers详解
消息和数据生成者,向Kafka的一个topic发布消息的过程叫做producers;
Producer将消息发布到指定的Topic中,同时Producer也能决定将此消息归属于哪个partition。比如基于round-robin方式或者通过其他的一些算法等;
异步发送批量发送可以很有效的提高发送效率,kafka producer的异步发送模式允许进行批量发送,先将消息缓存到内存中,然后一次请求批量发送出去。
broker详解
Broker没有副本机制,一旦broker宕机,该broker的消息将都不可用;
Broker不保存订阅者的状态,由订阅者自己保存;
无状态导致消息的删除成为难题(可能删除的消息正在被订阅),Kafka采用基于时间的SLA(服务保证),消息保存一定时间(通常7天)后会删除;
消费订阅者可以rewind back到任意位置重新进行消费,当订阅者故障时,可以选择最小的offset(id)进行重新读取消费消息。
Message详解
Message消息:是通信的基本单位,每个producer可以向一个topic发布消息;
Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的,每个topic又可以分成不同的partition每个partition储存一部分;
partion中的每条Message包含以下三个属性:
offset
long
MessageSize
int32
data
messages的具体内容
Consumers详解
消息和数据消费者,订阅topic并处理其发布的消息的过程叫做consumers;
在kafka中,我们可以认为一个group是一个“订阅者”,一个topic中的每个partions只会被一个“订阅者”中的一个consumer;
消费,不过一个consumer可以消费多个partitions中的消息。
注意:
Kafka的设计原理决定,对于一个topic,同一个group不能多于partition个数的consumer同时消费,否则将意味着某些consumer无法得到消息。
2023云服务器降价了!阿里云VS腾讯云
阿里云:2023阿里云服务器价格便宜到家了(值得买)
腾讯云:2023腾讯云2核4G服务器8M带宽70元一年(多配置可选)
华为云:2023华为云优惠活动云服务器60元一年起(查看更多配置报价)
标签:Kafka Kafka Broker Kafka拓扑图 Kafka消费者 Kafka生产者 Kafka结构
上一篇: Markdown教程语法汇总大全
下一篇: MySQL 5.5默认存储引擎InnoDB
|