分布式消息件设计篇

什么是中间件?

本质

一种具备接受请求、保存数据、发送数据等功能的网络应用。
和一般网络应用程序的区别是它主要负责数据的接受和传递,所以性能一般都高于普通程序

五大核心

  • 协议
  • 持久化
  • 消息分发
  • 高可用
  • 高可靠

协议是什么?

协议是计算机之间通信时共同遵从的一组约定,都遵守相同的约定,计算机之间才能
相互交流。
是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述。

协议三要素:

  1. 语法:即数据与控制信息的结构或格式;
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
  3. 时序(同步) : 即事件实现顺序的详细说明

常见协议

MQTT AMQP  OpenWire  Kafka OpenMessage

AMQP

AMQP (Advanced Message Queuing Protocol)是高级消息队列协议
04年JPMorgan Chase(摩根大通集团)联合其他公司共同设计。

事务支持、持久化支持,出生金融,在可靠上有天然优势  

支持  RabbitMQ  ActiveMQ

MQTT

MQTT (Message Queuing Telemetry Transport)消息队列遥测传输
是IBM开发的一个即时通讯协议,物联网系统架构中的重要组成部分。

轻量、结构简单、传输快、没有事务支持、没有持久化相关设计

应用场最
适用于计算能力有限、低带宽、网络不稳定的场景。

支持  RabbitMQ  ActiveMQ

Open Message协议

OpenMessaging是近一两年由阿里发起,与雅虎、滴滴出行、Streamlio等公司共
同参与创立的分布式消息中间件、流处理领域的应用开发标准。
是国内首个在全球范围内发起的分布式消息领域国际标准

特性   结构简单、解析快、有事务设计、有持久化设计

支持  Apache RocketMQ

Kafaka

 Kafka协议是基于TCP的二进制协议。消息内部是通过长度来分隔,由一些基本数据
 类型组成。

 
 特性 结构简单、解析快、无事务设计、有持久化设计

 支持kafka

持久化

只有ActiveMQ 支持数据库模式

消息分发

ActiveMQRabbitMQKafkaRocketMQ
发布订阅支持支持支持支持
轮询分发支持支持支持/
公平分发/支持支持/
重发支持支持/支持
消息拉取/支持支持支持

高可用

高可用机制

高可用性是指产品在规定的条件和规定的时刻或时间区间内处于可执行规定
功能状态的能力。
当业务量大时,一台消息中间件服务器可能无法满足需求,所以需要消息中
间件能够集群部署,来达到高可用的目的。

部署方案

1.Master-Slave主从共享数据的部署方式
image.png

2Master-Slave主从同步部署的方式
image.png

3Broker-Cluster多集群同步部署方式
image.png

4Broker-Cluster多主集群群发部署方式
image.png

5 Master-Slave与Broker-Cluster结合
image.png

高可靠

高可靠性是指系统可以无故障地持续运行。比如一个系统从来不崩溃、报错,或者崩溃、
报错的几率较低,那就是高可靠。
在高并发业务场景下,如果不能保证系统的高可靠,那造成的损失将会非常严重。

保证消息中间件的高可靠性,可以从以下几方面考虑
消息传输可靠:通过协议来保证系统间数据解析的正确性。
消息存储可靠:通过持久化来保证消息的存储可靠性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值