当前位置:网站首页>Technical Selection of Message Queuing
Technical Selection of Message Queuing
2022-08-02 16:04:00 【zhangyu】
Message Queuing Enterprise Application Scenario Analysis
- Message Queue: A container for storing messages during message transmission. Producers and consumers do not communicate directly, relying on queues to ensure message reliability and avoid mutual influence between systems.
- Major roles of message queue: server, client
- The main functions of message queues: business decoupling, asynchronous calls, traffic peak shaving
- Advantages of decoupling: improve system stability, avoid multiple calls by broadcasting messages, and asynchronously process through message queues for scenarios where you don't need to pay attention to call results
Comparative analysis of message queue selection, why use RocketMQ
| feature comparison | Maturity | Sequence Message | Delayed message | Transaction message | Message filtering | Message query | Consumption failure retry | Batch send |
|---|---|---|---|---|---|---|---|---|
| kafka | Log Field | Support | Not supported | Not supported | Support | Not supported | Not supported | Support |
| RabbitMQ | Mature | Support | Not supported | Not supported | Not supported | Not supported | Support | Not supported |
| RocketMQ | Mature | Support | Specific LV | Support | Support | Support | Support | Not supported |
| Utility | Deployment method | Cluster Management | Select the main method | Master-slave switch | Data reliability | Performance | Availability | Stackability |
|---|---|---|---|---|---|---|---|---|
| kafka | Clusters | Zookeeper | Automatic elections | Auto switch | High | Very high | Distributed, master-slave | Very good |
| RabbitMQ | Clusters | Erlang native support | The oldest joined node | Auto switch | High | in | Master-Slave | General |
| RocketMQ | Clusters | Name Server | Not supported | Auto switching is not supported | High | High | Distributed, master-slave | Very good |
- Kafka: a data stream channel between systems
- RabbitMQ: Reliable Messaging
- RocketMQ: High-performance reliable messaging
Analysis of MQ High Availability and High Expansion Solutions
- RocketMQ Architecture
- Broker master-slave deployment, its own information is registered in NameServer
- Client gets broker information from NameServer
- NameServer nodes are independent of each other, no data interaction
- Reliability Analysis
- Sync Flash: low performance, high reliability
- Asynchronous flushing: high performance, low reliability

- Asynchronous replication
- Sync Double Write
- Usability Analysis
- Master-slave mode Master is down: Broker is readable but not writable
- How to build a cluster
- Single Master Mode
- Multi-Master Mode
- Multi-Master Multi-Slave Mode-Asynchronous Replication
- Multi-Master Multi-Slave Mode-Synchronous Double Write
Analysis of MQ service registration and discovery principles
- Registry Center—NameServer Design
- Service registration: Broker registers itself with information
- Service Discovery: Procucer/Consumer Find Broker Information
- Registry Center—NameServer Design Advantages
- Design goals are simple and efficient
- High availability solution: multiple nodes independent of each other
- Data Storage Design
- Cluster-
- Broker1 -
- Topic-
- Broker-heartbeat
- Cluster-
边栏推荐
猜你喜欢

嵌入式学习硬件篇------初识ARM

CDH(computational Diffie-Hellman)问题以及与离散对数、DDH问题的区别

分布式一致性协议-Raft

【网络安全】学习笔记 --00

CDH (computational Diffie-Hellman) problem and its differences with discrete logarithm and DDH problems

Unity-PlayMaker

UnityAPI-Ray-Physics

数学工具-desmos 图形曲线

LITESTAR 4D应用:室内植物照明模拟

SkyWalking Agent数据采集和上报原理浅析
随机推荐
【Solidity智能合约基础】-- 基础运算与底层位运算
Optisystem应用:光电检测器灵敏度建模
极简式 Unity 获取 bilibili 直播弹幕、SC、上舰、礼物等 插件
SkyWalking Agent数据采集和上报原理浅析
嵌入式学习硬件篇------初识ARM
系统性能和TCP/UDP网络优化-学习大杂烩
Oauth2.0 资源服务器搭建
面试汇总
Xrdp 体验优化
5款最好用的免费3D建模软件(附下载链接)
记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
OpenPose 运行指令 ([email protected])
px和em和rem的区别
C#高级教程
Qt | 实现一个简单的可以转动的仪表盘
golang内存相关文章-收集
TCP的三次握手和四次挥手
C语言函数调用过程-汇编分析
学习笔记(01):activiti6.0从入门到精通-工作流的介绍以及插件的安装
【进程间通信】信号量的使用/共享内存