消息中间件概述
发布日期:2021-06-30 16:02:31 浏览次数:2 分类:技术文章

本文共 1097 字,大约阅读时间需要 3 分钟。

推荐:

消息中间件概述

原文地址

中间件

是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称中间件。

学术界定义

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

消息中间件

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

在这里插入图片描述

为什么需要消息中间件

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

在这里插入图片描述

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

在这里插入图片描述
生活中的示例:
在这里插入图片描述
在这里插入图片描述

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

常见消息中间件

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和J2EE1.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://kaven.blog.csdn.net/article/details/104223610 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:深入理解AMQP协议
下一篇:消息中间件汇总

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 20时00分07秒