消息中间件系列之简单介绍

一、什么是消息中间件

关注于数据的发送和接收,利用高效可靠的异步消息传递机制集成分布式系统。

二、为什么时候消息中间件

1.解耦合
2.异步
3.横向扩展
4.安全可靠
5.顺序保证

三、消息中间件方案

1.Java消息服务(Java Message Service)即JMS,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间或分布式中发送消息,进行异步通信。
2.AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件的不同产品,不同开发语言等条件限制。
JMS与AMQP对比
说明JMS规范AMQP协议
定义java APIwire-protocol
跨语言
消息类型p2p,pub/subdirect,fanout,topic,headers,system
消息类型TextMessage,MapMessage,BytesMessage,StreamMessage,ObjectMessage,Messagebyte[]
综合评价JMS定义了Java API层面的标准;在Java体系中,多个clietn均可以通过JMS进行交互,不需要应用修改代码,但是其对跨平台的支持较差AMQP的主要特征是面向消息、队列、路由、可靠性、安全

四、常用消息中间件

1.ActiveMQ
1)多语言和协议客户端。
语言:
Java、C、C++、C#、Ruby、Perl、Python、PHP
协议:
OpenWire、Stomp、REST、WS、XMPP、AMQP
2)完全支持JMS1.1和J2EE1.4规范(持久化,XA消息和事务)
3)虚拟主题、组合目的、镜像队列
2.RabbitMQ
1)多语言客户端:
Java、Python、Ruby、C、PHP等
2)事务支持/发布确定
3)消息持久化
3.Kafka
一种高吞吐量的分布式发布订阅消息系统,是一个分布式、分区的、可靠的分布式日志存储服务。
3个消息中间件的综合评价
说明ActiveMQRabbitMQKafka
跨语言支持(Java优先)与语言无关支持(Java优先)
支持协议OpenWire,Stomp,XMPP,AMQPAMQP
优点遵循JMS规范,安装部署方便继承Erlang天生的并发性,用于金融行业,稳定性,安全性有保障依赖ZK,可动态扩展节点,高性能,高吞吐量,无线扩容,消息可指定追溯
缺点会莫名丢失消息Erlang语言难度较大,不支持动态扩展严格的顺序机制,不支持消息优先,不支持标准消息协议,不利于平滑迁移
总结适合中小型企业级消息应用场景,不适合上千个队列的应用适合对稳定性要求高的企业级引用一般应用在大数据日志处理或实时性,可靠性要求稍低的场景。

转载于:https://www.cnblogs.com/moonlightL/p/7301260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值