最后更新:2022-07-24 07:19:22 手机定位技术交流文章
为什么使用中间消息
具体地说,中间部分屏蔽了基础操作系统的复杂性,程序开发者面临一个简单的统一的开发环境,减少程序设计的复杂性,集中精力做生意,不需要在不同的系统软件上重复过程。这大大降低了技术负担,中间部分是应用系统,它不仅仅是简单的发展,缩短了发展周期,它还减少了系统维护、操作和管理的工作量,它还降低了计算机的总成本
单体架构
存在的问题:
分布式架构
存在问题:
好处:
常见的消息中间件
ActiveMQ, RabbitMQ, Kafka, RocketMQ等。
消息中间件的使用


消息中介的本质和设计
它是接收数据、接收请求、存储数据、发送数据等技术服务。
消息中介的核心组成部分
什么是协议

所谓协议是指:
网络协议的三要素
常见问题:为什么消息中间人不直接使用 http 协议?
AMQP 协议
AMQP:(Full Advanced Message Queuing Protocol)是一个先进的消息队列协议。它由摩根公司和其他公司共同设计。这是一个标准的高级消息队列协议,提供统一消息服务。是一个开放的应用程序层协议标准,为面向消息的中间件设计。基于此协议的客户端和消息中介人可以发送消息,不接受客户/中介要求,例如不同的产品、不同的开发语言
特性
MQTT 协议
MQTT协议(Message Queuing Telemetry Transport) 消息队列是一个开放的即时消息协议,是IoT系统架构的重要组成部分
特点
应用场景
OpenMessage协议
近年来,包括阿里、雅虎、D-Bus和Steamalio在内的多家公司合作开发分布式消息中心和流处理标准
特点
Kafka 协议
Kafka协议是一个基于TCP/IP的二进制协议,消息由长度分开,由一些基本数据类型组成
特点
持久化
它只是在重新启动服务时将数据存储在磁盘上,而不是在内存中消失,从而使数据永久存储

常用的持久化方式
| ActiveMQ | RabbitMQ | Kafka | RocketMQ | |
|---|---|---|---|---|
| 文件存储 | 支持 | 支持 | 支持 | 支持 |
| 数据库 | 支持 | / | / | / |
MQ消息队列有多个角色
一般获取数据的方式无外乎"推"(push)或者"拉"(pull)两者方式,通常,Git有一个拉动机制。我们发送的http请求是检索和返回数据库数据的典型过程。消息队列MQ是一个传送的过程,这些推力机制可以适用于许多商业场景,还有许多反压力机制的策略
消息分配策略的机制比较
| ActiveMQ | RabbitMQ | Kafka | RocketMQ | |
|---|---|---|---|---|
| 发布订阅 | 支持 | 支持 | 支持 | 支持 |
| 轮询分发 | 支持 | 支持 | 支持 | / |
| 公平分发 | / | 支持 | 支持 | / |
| 重发 | 支持 | 支持 | / | 支持 |
| 消息拉取 | / | 支持 | 支持 | 支持 |
什么是高可用机制
高可用性是指产品能在特定条件下和特定时间或时间执行特定功能的能力。
当业务量增加时,请求也过大,一台消息中间件服务器会触及硬件(CPU、内存、磁盘)的极限,一台消息服务器已经无法满足业务的需求,所以消息中间件必须支持集群部署,来达到高可用的目的
类别模式1-对类别数据共享的 Master-Slave部署

解析:生产者将消费者发送到 Master 节点,所有的都连接这个消息队列共享这块数据区域,Master 节点负责写入,一旦 Master 挂掉,slave 节点继续服务。从而形成高可用
集群模式2 - Master-Slave 主从同步部署方式

解析:这种模式写入消息同样在 Master 主节点上,但主节点将将数据同步到奴隶节点以形成复制,动物园keeper或 redis一般从机制上类似.这样可以达到负荷平衡的效果,如果消费者有多个,他们可以到不同的地点去消费,考虑到复制和同步消息暂时使用大带宽和网络资源
集群模型3-多级集群的 Master-Slave同步部署方法

分析:与上述不同之处并不大,但可以在任何节点上写
集群模式4- Master-Slave 多主集群转发部署模式

分析:如果插入的数据是 broker-1中,元数据信息存储数据的相应描述,并记录存储位置(列)
它会对描述信息,即,计算数据信息以同步,如果消费者在经纪人2处消费,发现你没有相应的消息,你可以从相应的元数据信息中查询,然后返回相应的消息信息,场景: 例如,买火车票或在黄溪举办音乐会的票,如果第一个黄牛有一个顾客说他想买一张音乐会票,如果牛没有,他就会回到另一个牛那里去问,如果有就返回
集群模型5 Master-Slave和 Broker-Cluster组合

解析:实现多主多从的热备机制来完成消息的高可用以及数据的热备机制,在生产规模达到一定的阶段的时候,这种使用的频率比较高
结论:消息共享、消息同步或元数据共享
高可靠机制
高可靠机制:系统可以无故障低持续运行,比如一个系统突然崩溃,报错,异常等等并不能影响线上业务的正常运行,出错的几率极低,就称之为:高可靠
在高耦合业务场景中,未能确保系统高可靠性造成的风险和损失非常严重
确保消息中介人可靠可从两个方面考虑
本文由 在线网速测试 整理编辑,转载请注明出处。