kafka消息队列模型
- 点对点
点对点模型是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接受者接受处理,即使有多个消息监听者也是如此。 - 发布订阅
发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多重不同的订阅者,临时订阅者只有在主动监听主题时才接受消息,而持久订阅者则监听主题的所有消息,即使当前订阅者不可用,处理离线状态。
为什么需要消息队列
- 解耦
- 冗余
- 扩展性
- 灵活性&峰值处理能力
- 可恢复性
- 顺序保证
- 缓冲
- 异步通信
说明
apache kafka是使用开源消息系统,有scala语言编写。
主要说明
发送消息者称为producer
消息接受者称为consumer
kafka集群有多个kafka实例组成,每个server称为broker
kafka依赖于zookeeper集群保存meta元数据