0,ActiveMQ简单介绍

xiaoxiao2021-02-28  105

首先我们先来了解一下ActiveMQ是什么,以及项目中为什么要使用它


1,ActiveMQ是什么

由Apache出品,高性能开源消息总线。 支持JMS1.1(Java Message Service)和J2EE 1.4规范的 JMS Provider实现 为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信 提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件

2,ActiveMQ的特点

ActiveMQ实现了JMS标准并提供了很多附加的特性。 JMX管理(java Management Extensions,即java管理扩展)

主从管理(master/salve,这是集群模式的一种,主要体现在可靠性方面,当主中介(代理)出现故障,那么从代理会替代主代理的位置,不至于使消息系统瘫痪)、 消息组通信(同一组的消息,仅会提交给一个客户进行处理)、 有序消息管理(确保消息能够按照发送的次序被接受者接收)。 消息优先级(优先级高的消息先被投递和处理)、 订阅消息的延迟接收(订阅消息在发布时,如果订阅者没有开启连接,那么当订阅者开启连接时,消息中介将会向其提交之前的,其未处理的消息)、 接收者处理过慢(可以使用动态负载平衡,将多数消息提交到处理快的接收者,这主要是对PTP消息所说)、 虚拟接收者(降低与中介的连接数目)、 成熟的消息持久化技术(部分消息需要持久化到数据库或文件系统中,当中介崩溃时,信息不会丢失)、 支持游标操作(可以处理大消息)、 支持消息的转换、 通过使用Apache的Camel可以支持EIP、 使用镜像队列的形式轻松的对消息队列进行监控等

3,ActiveMQ的作用

ActiveMQ和异步消息对一个系统的架构是很有意义的

不同语言应用集成

ActiveMQ使用java编写,并且提供一个java客户端API。 但ActiveMQ也为C/C++,.NET,Perl,PHP,Python,Ruby等提供客户端。 考虑在不同平台不同语言下的各个应用进行集成时,这将是一个巨大的优势。 不同语言的客户端API使各种不同的语言能够通过ActiveMQ发送和接收消息。 对于ActiveMQ提供的多语言兼容,还有一个好处是相对于RPC调用,它能帮助系统各应用间的解耦。

RPC的替代者

应用广泛的使用RPC模式的同步调用。 同步请求的系统在规模上有较大的限制,因为请求会被阻塞,从而导致整个系统变慢。 如果使用异步消息替代,可以很容易增加额外的消息接收者,使得消息能被并发消耗,从而加快请求处理。

应用间解耦

分布式应用,紧耦合系统带来很多问题 松耦合系统,也就是依赖性小的系统,可以更好地适应未知变化 不只是系统某部分的改变不会影响整个系统,而且部件间的交互也更简单 相比使用同步的系统(调用者必须等待被调用者返回信息),异步系统(调用方发送消息后就不管,即fire-and-forget)能够给我们带来事件驱动架构(event-driven architecture EDA).

作为事件驱动架构的骨架

解耦,异步架构的系统允许通过代理器配置更多的客户端,内存等(即vertical scalability)来扩大系统,而不是增加更多的代理器(即horizontal scalability)。 电子商务系统:当用户购买物品,事实上系统需要很多步骤去处理,包括下单,创建发票,付款,执行订单,运输等。 商城下单就是一个多步处理的例子:每一步都由单独的服务去处理。 这样的异步处理能提供高负载和高可用性。

提高系统扩展性。

使用事件驱动设计的系统为了获得高可扩展性 通过异步消息分开商业处理步骤给各个应用,能够带来很多可能性。 每一个服务完成一个功能并且只有一个功能。 服务间使用异步消息和最终一致性
转载请注明原文地址: https://www.6miu.com/read-85518.html

最新回复(0)