发布订阅的对象是主题(topic)
向主题发布消息的客户端应用程序称为生产者(producer),生产者可以持续不断地向多个主题发送消息
订阅这些主题消息的客户端应用程序称为消费者(consumer),消费者能够同时订阅多个主题的消息
生产者和消费者统称为客户端
kafka的服务端由被称为broker的服务进程构成,一个kafka集群由多个broker组成
broker负责接收和处理客户端发送过来的请求,以及对消息进行持久化
多个broker进程能够运行在同一台机器上,但更常见的做法是将不同的broker分散运行在不同的机器上
实现高可用的另一个手段是备份机制(replication)
备份:把相同的数据拷贝到多台机器上,这些相同的数据拷贝在kafka中被称为副本(replica)
副本的数量是可以配置的,kafka定义了两类副本:领导者副本(leader replica)和追随者副本(follower replica)
kafka中的分区机制是将每个主题划分成多个分区(partition),每个分区是一组有序的消息日志
生产者生产的每条消息只会被发送到一个分区中,kafka的分区编号是从0开始的
副本是在分区这个层级定义的,每个分区下可以配置n个副本,只能有1个领导者副本和n-1个追随者副本
生产者向分区(分区的领导者副本)写入消息,每条消息在分区中的位置由位移(offset)来表征,而分区位移总是从0开始
三层消息架构
点对点模型(peer to peer,p2p):同一条消息只能被下游的一个消费者消费,其他消费者不能染指
kafka通过消费者组(consumer group)来实现p2p模型
引入消费者组的目的:提高消费者端的吞吐量(tps)
消费者实例(consumer instance):即可以是运行消费者应用的进程,也可以是一个线程
重平衡(rebalance)
消息(record):消息是kafka处理的主要对象
主题(topic):主题是承载消息的逻辑容器,实际使用中多用来区分具体的业务
分区(partition):一个有序不变的消息序列,每个主题下有多个分区
消息位移(offset):也叫分区位移,表示一条消息在分区中的位置,是一个单调递增且不变的值
副本(replica)
生产者(producer):向主题发布消息的应用程序
消费者(consumer):从主题订阅消息的应用程序
消费者位移(consumer offset):表征消费者的消费进度,每个消费者都有自己的消费者位移
消费者组(consumer group):多个消费者实例共同组成一个组,同时消费多个分区以实现高吞吐
重平衡(rebalance)
如对本文有疑问, 点击进行留言回复!!
before社区电量是什么意思 Before社区电量获得方法
RecycleView入门详解(教你全面掌握RecycleView用法)
动态权限请求框架RxPermissions(几行代码搞定权限)
URL路径@PathVariable出现点号“.“时值遭截断问题
网友评论