用到了哪些MQ?什么使用場景?MQ的組成部分?MQ宕機了怎么辦?如何進行持久化的?
MQ的選型?
Kafka:高吞吐量、低延遲的分布式消息隊列,主要用于大規模數據處理和流式處理
RocketMQ:RocketMQ是阿里巴巴開源的分布式消息隊列,具有高吞吐量、低延遲、高可靠性等特點
RabbitMQ:易于使用的消息隊列,支持多種消息傳遞模式,如點對點和發布-訂閱。它具有較好的可靠性和穩定性,支持消息持久化,保證消息不會丟失
為什么選擇RabbitMQ?
使用場景是多個業務服務產生的日志要發送給日志服務進行處理,結合業務背景跟技術選型當初選擇了RabbitMQ,比較容易上手,并且SpringBoot項目集成了
1、使用簡單,功能強大
2、基于AMQP協議
3、社區活躍,文檔完善
4、高并發性能好,這主要得益于Erlang語言
5、SpringBoot默認已集成RabbitMQ
組成部分說明:
Producer:消息生產者,即生產方客戶端,生產方客戶端將消息發送到MQ
Broker:消息隊列服務進程,此進程包括兩個部分:Exchange和Queue
Exchange:消息隊列交換機,按一定的規則將消息路由轉發到某個隊列,對消息進行過濾
Queue:消息隊列,存儲消息的隊列,消息到達隊列并轉發給指定的消費方
Consumer:消息消費者,即消費方客戶端,接收MQ轉發的消息
RabbitMQ在項目中有哪些使用場景?