MQ選擇
一、Kafka
1、消息隊列如何保證消息可靠性
- 消息不重復
- 生產(chǎn)者控制
- 消費者冪等
- 消息不丟失
- 生產(chǎn)者發(fā)送,要確認broker收到并持久化
- broker確認消費者消費完,再刪除消息
2、kafka是什么
- Kafka是一種高吞吐量、分布式、基于發(fā)布/訂閱的消息中間件,是Apache的開源項目。
- broker: Kafka服務器,負責消息存儲和轉(zhuǎn)發(fā)
- topic:消息類別,Kafka按照topic來分類消息
- partition: topic的分區(qū),一個topic可以包含多個partition, topic 消息保存在各個partition上。offset:消息在日志中的位置,可以理解是消息在partition上的偏移量,代表該消息的唯一序號
- Producer:消息生產(chǎn)者
- Consumer:消息消費者
- Consumer Group:消費者分組,每個Consumer必須屬于一個group
- Zookeeper:保存著集群 broker、 topic、 partition等數(shù)據(jù);另外,還負責broker故障發(fā)現(xiàn), partition leader選舉,負載均衡等功能
3、kafka的架構
-
Producers(生產(chǎn)者):生產(chǎn)者將數(shù)據(jù)PUSH給broker
-
Consumers(消費者):因為Kafka代理是無狀態(tài)的,這意味著消費者必須通過使用分區(qū)偏移來維護已經(jīng)消耗了多少消息。消費者向broker拉取消息
-
Broker(代理):一臺 kafka 服務器就是一個 broker。一個集群由多個 broker 組成。一個 broker 可以容納多個 topic。
-
Topic :可以理解為一個隊列,一個 Topic 又分為一個或多個分區(qū)
-
Consumer Group:這是 kafka 用來實現(xiàn)一個 topic 消息的廣播(發(fā)給所有的 consumer)和單播(發(fā)給任意一個 consumer)的手段。一個 topic 可以有多個 Consumer Group
-
ZooKeeper:用于管理和協(xié)調(diào)broker。?文章來源:http://www.zghlxwxcb.cn/news/detail-834093.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-834093.html
4、kafka的消費者是pull(拉)還是push(推)模式
到了這里,關于消息中間件-面試題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!