1.JMS的两种模型
队列模型 : 生产者发送消息后存入队列,消费者接受消息后移出队列,或消息过期移出队列 1:1
发布/订阅模型 : 生产者发送消息后存入主题, 消费者订阅消息但不移出队列 1:n
2.kafaka的结构
生产者 kafaka集群 消费者组
生产者提供消息
kafaka群包含多个broker,每个broker是一个kafaka示例
每个topic水平扩展为多个patition分区在多个broker上,每个patition对应一个log文件,同时每个patition分区对应有一个或多个follower文件,这个副本文件放在别的broker实例中,parttition分区中leader来负责处理来自生产者和消费者的请求,追随者则从领导者同步数据,leader出错时,选举新的leader
当生产者发送消息后,kafaka集群需要返回确认信息,一般是leader接收后返回,确认机制有三种模式,ack=0,1,-1,0时不需要等待 Kafka 集群的确认,可能会导致消息丢失。1时等待领导者确认收到消息后返回。-1时等待所有副本确认收到消息后返回。
如何确定消费者消息哪个分区的消息,有两个分配策略,一种是轮询,按顺序给每个消费者发,一种是范围分配,按照数量来平均分配