Kafka实现消息广播和单播

2019-03-08 07:28|来源: 网路

使用Consumer high level API时,同一Topic的一条消息只能被同一个Consumer Group内的一个Consumer消费,但多个Consumer Group可同时消费这一消息。



这是Kafka用来实现一个Topic消息的广播(发给所有的Consumer)和单播(发给某一个Consumer)的手段。一个Topic可以对应多个Consumer Group。如果需要实现广播,只要每个Consumer有一个独立的Group就可以了。要实现单播只要所有的Consumer在同一个Group里。用Consumer Group还可以将Consumer进行自由的分组而不需要多次发送消息到不同的Topic


实际上,Kafka的设计理念之一就是同时提供离线处理和实时处理。根据这一特性,可以使用Storm这种实时流处理系统对消息进行实时在线处理,同时使用Hadoop这种批处理系统进行离线处理,还可以同时将数据实时备份到另一个数据中心,只需要保证这三个操作所使用的Consumer属于不同的Consumer Group即可。下图是KafkaLinkedin的一种简化部署示意图。



下面这个例子更清晰地展示了Kafka Consumer Group的特性。首先创建一个Topic (名为topic1,包含3个Partition),然后创建一个属于group1的Consumer实例,并创建三个属于group2的Consumer实例,最后通过Producer向topic1发送key分别为1,2,3的消息。结果发现属于group1的Consumer收到了所有的这三条消息,同时group2中的3个Consumer分别收到了key为1,2,3的消息。如下图所示。


转自:http://www.jasongj.com/2015/03/10/KafkaColumn1/


相关问答

更多

带以太网和Wifi的广播和单播(Broadcast & Unicast with Ethernet & Wifi)

Boradcast是一个适用于所有人的传输,并且将具有ff:ff:ff:ff:ff:ff目标MAC地址。 单播是一种用于特定网络适配器的传输,它将具有其特定的MAC地址作为目的地。 就谁“听到”它所依赖的传输而言,让我们从以太网开始:同一个局域内的所有站点以及与发送者或目的地相同的交换机接口后面的所有站点都将听到传输。 如果交换机不知道目的地所在的位置,它会将消息泛洪(复制)到所有接口(接口除外),使连接到此交换机的所有节点都听到消息。 WiFi:有点复杂,因为电台可以处于省电模式。 对于省电模式 ...

广播风暴是怎样形成的(单播,多播和广播)

帧的传输方式,即单播帧( Unicast Frame )、多播帧( Multicast Frame )和广播帧( Broadcast Frame)。1、单播帧单播帧也称“点对点”通信。此时帧的接收和传递只在两个节点之间进行,帧的目的MAC地址就是对方的MAC地址,网络设备(指交换机和路由器)根据帧中的目的MAC地址,将帧转发出去。2、多播帧多播帧可以理解为一个人向多个人(但不是在场的所有人)说话,这样能够提高通话的效率。多播占网络中的比重并不多,主要应用于网络设备内部通信、网上视频会议、网上视频点 ...

kafka能做topic广播吗?

bg4.png 可以的只要groupID不一样就行但是不知道storm kafka里怎么哪个字段是设置groupid的

如何实现kafka高并发发送消息

几点需要注意: 尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。 用jprofiler等工具找出性能瓶颈,减少额外的开销。 优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅

如何实现kafka高并发发送消息

几点需要注意: 尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。 用jprofiler等工具找出性能瓶颈,减少额外的开销。 优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅

相关文章

更多

最近更新

更多