当前位置:网站首页>Getting started with Message Oriented Middleware
Getting started with Message Oriented Middleware
2022-07-03 16:01:00 【Concealed wind】
1、 What is message middleware
Make use of efficient and reliable messaging mechanism for platform independent data exchange ;
And the integration of distributed system based on data communication ;
By providing messaging and message queuing models , It can expand communication between processes in a distributed environment ;
2、 Application scenarios of message middleware
Cross system data transfer 、 Peak clipping of high concurrent traffic 、 Data asynchronous processing … wait
3、 Common message middleware
ActiveMQ、RabbitMQ、Kafka、RocketMQ
4、 Design idea of Message Oriented Middleware
agreement 、 Persistence mechanism 、 Message distribution strategy 、 High availability 、 Highly reliable
5、 What is the protocol
A protocol is a set of agreements that computers follow when communicating with each other , All follow the same agreement , Computers can communicate with each other . A protocol is a set of agreements that computers follow when communicating with each other , All follow the same agreement , Computers can communicate with each other .
Three elements of agreement :
grammar : That is, the structure or format of data and control information ;
semantics : That is, what kind of control information needs to be sent , What actions to complete and what responses to make ;sequential ( Sync ): That is, a detailed description of the sequence of event implementation
Message middleware commonly used protocol :OpenWire、AMQP、MQTT、Kafka、OpenMessage
MQTT agreement (RabbiMQ、ActiveMQ):
MQTT (Message Queuing Telemetry Transport) Message queuing telemetry transmission is IBM Developed an instant messaging protocol , An important part of the architecture of the Internet of things .
characteristic : Light weight 、 Simple structure 、 Fast transmission 、 No transaction support 、 No persistence related design
Application scenarios : It is suitable for those with limited computing power 、 Low bandwidth 、 The scene of network instability .
Open Message agreement (RocketMQ)
OpenMessaging It was initiated by Ali in the last year or two , With Yahoo 、 Drops travel 、Streamlio The distributed message middleware, which was founded by companies such as 、 Application development standards in the field of stream processing . It is the first international standard in the field of distributed messaging launched globally in China .
characteristic : Simple structure 、 Fast parsing 、 With transaction design 、 Persistent design
Kafka agreement (kafka)
Kafka The protocol is based on TCP Binary protocol . Messages are separated by length , It consists of some basic data types .
characteristic : Simple structure 、 Fast parsing 、 No transaction design 、 Persistent design
6、 Common persistence methods
| ActiveMQ | RabbitMQ | Kafka | RocketMQ | |
|---|---|---|---|---|
| file system | Support | Support | Support | Support |
| database | Support | / | / | / |
7、 Common message oriented middleware distribution strategies
| ActiveMQ | RabbitMQ | Kafka | RocketMQ | |
|---|---|---|---|---|
| Publish subscribe | Support | Support | Support | Support |
| Poll distribution | Support | Support | Support | / |
| Fair distribution | / | Support | Support | / |
| retransmission | Support | Support | / | Support |
| Message pull | / | Support | Support | Support |
8、 High Availability Mechanism
High availability It refers to the ability of the product to perform the specified function under the specified conditions and within the specified time or time interval .
When there's a lot of business , A message oriented middleware server may not meet the requirements , Therefore, message oriented middleware is required to be able to be deployed in clusters , To achieve high availability .
Master-Slave The deployment of master-slave shared data

Master-Slave Master slave synchronous deployment mode

Broker-Cluster Multi master cluster synchronous deployment mode

Broker-Cluster Multi master cluster forwarding deployment mode

Master-Slave And Broker-Cluster combination

9、 What is high reliability
High reliability means that the system can operate continuously without failure . For example, a system never crashes 、 Report errors , Or collapse 、 The probability of reporting errors is low , That is high reliability .
In the high concurrency business scenario , If you can't guarantee the high reliability of the system , The damage will be very serious .
Ensure the high reliability of message middleware , Consider from the following aspects
Reliable message transmission : Through the protocol to ensure the correctness of data analysis between systems .
Reliable message storage : To ensure the storage reliability of messages through persistence .
边栏推荐
- 从 flask 服务端代码自动生成客户端代码 -- flask-native-stubs 库介绍
- Batch files: list all files in a directory with relative paths - batch files: list all files in a directory with relative paths
- 【Proteus仿真】8×8LED点阵屏仿电梯数字滚动显示
- Persisting in output requires continuous learning
- How idea starts run dashboard
- QT use qzxing to generate QR code
- win32创建窗口及按钮(轻量级)
- Redis high availability and persistence
- 阿飞的期望
- Pandora IOT development board learning (HAL Library) - Experiment 5 external interrupt experiment (learning notes)
猜你喜欢

Unity function - unity offline document download and use

Microservice - Nacos registration center and configuration center

The difference between calling by value and simulating calling by reference

Subclass hides the function with the same name of the parent class

Digital image processing -- popular Canny edge detection

Break through 1million, sword finger 2million!

Brush questions -- sword finger offer
![[redis foundation] understand redis master-slave architecture, sentinel mode and cluster together (Demo detailed explanation)](/img/1f/3dd95522b8d5f03dd763a6779e3db5.jpg)
[redis foundation] understand redis master-slave architecture, sentinel mode and cluster together (Demo detailed explanation)

MB10M-ASEMI整流桥MB10M

几种常见IO模型的原理
随机推荐
请求头不同国家和语言的表示
App mobile terminal test [5] file writing and reading
The difference between RAR and zip files
Vs2017 is driven by IP debugging (dual machine debugging)
Go language self-study series | if else if statement in golang
Nifi from introduction to practice (nanny level tutorial) - flow
Create gradle project
子类隐藏父类的同名函数
Automatic generation of client code from flask server code -- Introduction to flask native stubs Library
秒殺系統3-商品列錶和商品詳情
Backtracking method to solve batch job scheduling problem
The difference between calling by value and simulating calling by reference
[list to map] collectors Tomap syntax sharing (case practice)
Problems of CString in multithreading
Second kill system 3 - list of items and item details
Three dimensional reconstruction of deep learning
Popular understanding of random forest
Using optimistic lock and pessimistic lock in MySQL to realize distributed lock
Brush questions -- sword finger offer
通过进程PID获取可执行文件路径(QueryFullProcessImageName)