java如何设计一个消息中间件

一、消息中间件的核心设计

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

二、五大核心

1、协议:OpenWire、AMQP、MQTT、Kafka、OpenMessage
AMQP: 是高级消息队列协议,04年由摩根大通集团联合其他公司共同设计;特性是事务支持、持久化支持,出生于金融行业,在可靠性消息处理上具备天然的优势。
MQTT:消息队列遥测传输是IBM开发的一个即时通讯协议,是物联网系统架构中的重要组成部分;特性是轻量、结构简单、传输快、没有事务支持、没有持久化相关设计;应用场景:适用于计算能力有限、低带宽、网络部稳定的场景。
OpenMessage:是近一两年由阿里发起,与雅虎、滴滴出行、Streamlio等公司共同参与创立的分布式消息中间件、流处理领域的应用开发标准,是国内首个在全球范围内发起的分布式消息领域国际标准;特性:结构简单、解析快、有事务设计、有持久化设计
Kafka:协议是基于TCP的二进制协议。消息内部是通过长度来分隔,由一些基本数据类型组成;特性:结构简单、解析快、无事务设计、有持久化设计
2、持久化机制: 就是将数据存入磁盘,而不是存在内存中随服务启动而消失,使数据能够永久保存叫做持久化。 一般都是文件存储,只有activeMQ支持数据库存储
3、消息分发机制:一种是由服务器直接发送,一种是由客户端主动拉取。
在这里插入图片描述
4、高可用设计:高可用性是指产品在规定的条件和规定的时刻或事件区间内处于可执行规定功能状态的能力,当业务量大时,一台消息中间件服务器可能无法满足需求,所以需要消息中间件能够集群部署,来达到高可用的目的。
第一种:Master-Slave主从同步部署方式,一主多从,同步会占用很大的带宽
第二种:Broker-Cluster多主集群同步部署方式,多主的模式
第三种:Broker-Cluster多主集群转发的方式。
第四种: Master-Slave与Broker-Cluster结合实现,即实现负载又能够保证高可用。
5、高可靠设计:高可靠性是指系统可以无故障地持续运行,比如一个系统从来不崩溃、报错,或者崩溃、报错地几率较低,那就是高可靠。在高并发业务场景下,如果不能保证系统的高可靠,那造成的损失将会非常严重
保证高可靠的因素:消息传输可靠,消息存储可靠。

解释:本篇首先介绍一下消息中间件的组成部分,以便于以下对各种中间的学习能够有一个更好的思路。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值