当前位置:   article > 正文

消息中间件概述_消息中间件 数据库 什么关系?

消息中间件 数据库 什么关系?

推荐:消息中间件汇总

消息中间件概述

原文地址

消息中间件概述

中间件

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

学术界定义

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

消息中间件

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

在这里插入图片描述

为什么需要消息中间件

通过服务调用让其他系统感知事件的发生,系统之间耦合度太高,用户体验不好。
在这里插入图片描述

通过消息中间件可以解耦服务调用。
在这里插入图片描述
生活中的示例:
在这里插入图片描述
在这里插入图片描述

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

常见消息中间件

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(消费组)。

三者的比较
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/357810
推荐阅读
相关标签
  

闽ICP备14008679号