美文网首页
消息中间件概述

消息中间件概述

作者: 若兮缘 | 来源:发表于2019-01-22 21:38 被阅读205次
中间件

是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称中间件。

学术界定义

中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性。

消息中间件

关注于数据的发送和接受,利用高效可靠的异步消息传递机制进行平台无关的数据交流,并基于数据通信集成分布式系统

为什么需要消息中间件

通过服务调用让其他系统感知事件的发生,系统之间耦合度太高,用户体验不好

通过消息中间件可以解耦服务调用

生活中的示例: 微信公众号、电视、黑板

好处:解耦、异步、横向扩展、安全可靠、顺序保证

常见消息中间件

ActiveMQ

ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现

特性
  1. 多种语言和协议编写客户端。
    语言: Java,C,C+ +,C#,Ruby,Perl,Python,PHP
    应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  2. 完全支持JMS1.1和J2EE 1.4规范(持久化,XA消息,事务)
  3. 虚拟主题、组合目的、镜像队列
RabbitMQ

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语
言编写。用于在分布式系统中存储转发消息,在易用性、扩展性、
高可用性等方面表现不俗

特性
  1. 支持多种客户端,如: Python、Ruby..NET.Java、JMS.C、
    PHP、ActionScript等
  2. AMQP的完整实现 (vhost.Exchange、Binding、Routing Key等)
  3. 事务支持/发布确认
  4. 消息持久化
Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它通过一种独一无二的设计提供了一个消息系统的功能

特性
  1. 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能
  2. 高吞吐量: 即使是非常普通的硬件Kafka也可以支持每秒数百万的消息
  3. Partition(分区)、Consumer Group(消费组)
三者的比较

相关文章

网友评论

      本文标题:消息中间件概述

      本文链接:https://www.haomeiwen.com/subject/ajarjqtx.html