JAVA分布式--ActiveMQ 消息中间件(上)

简介: JAVA分布式--ActiveMQ 消息中间件(上)

ActiveMQ


1). ActiveMQ


ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件很好地进行通信。

2). Java Message Service(JMS)

JMS支持两种消息发送和接收模型。


一种称为P2P(Ponit to Point)模型,即采用点对点的方式发送消息。P2P模型是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输称为可能,P2P模型在点对点的情况下进行消息传递时采用。


image.png


另一种称为Pub/Sub(Publish/Subscribe,即发布-订阅)模型,发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为topic(主题)。主题可以认为是消息传递的中介,消息发布这将消息发布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用。


image.png


3). JMS术语


Provider/MessageProvider:生产者

Consumer/MessageConsumer:消费者

PTP:Point To Point,点对点通信消息模型

Pub/Sub:Publish/Subscribe,发布订阅消息模型

Queue:队列,目标类型之一,和PTP结合

Topic:主题,目标类型之一,和Pub/Sub结合

ConnectionFactory:连接工厂,JMS用它创建连接

Connnection:JMS Client到JMS Provider的连接

Destination:消息目的地,由Session创建

Session:会话,由Connection创建,实质上就是发送、接受消息的一个线程,因此生产者、消费者都是Session创建的


4). ActiveMQ下载


image.png


bin (windows下面的bat(分32、64位)和unix/linux下面的sh)

conf (activeMQ配置目录,包含最基本的activeMQ配置文件)

data (默认是空的)

docs (index,replease版本里面没有文档,-.-b不知道为啥不带)

example (几个例子)

lib (activemMQ使用到的lib)

webapps 注意ActiveMQ自带Jetty提供Web管控台

webapps-demo 示例

activemq-all-5.15.3.jar

LICENSE.txt

README.txt


5). 配置

Web控制台账号和密码(apache-activemq-5.15.3\conf)


image.png


网络端口(apache-activemq-5.15.3\conf)–默认为8161


image.png


6). 启动

\apache-activemq-5.15.3\bin\win64\目录下双击activemq.bat文件,在浏览器中输入http://localhost:8161/admin/, 用户名和密码输入admin即可


image.png


7). 消息中间件(MOM:Message Orient middleware)

消息中间件有很多的用途和优点:


1 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块;


负责建立网络通信的通道,进行数据的可靠传送。


保证数据不重发,不丢失


能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务


8).什么情况下使用ActiveMQ?


多个项目之间集成

(1) 跨平台

(2) 多语言

(3) 多项目

降低系统间模块的耦合度,解耦

(1) 软件扩展性

系统前后端隔离

(1) 前后端隔离,屏蔽高安全区


目录
相关文章
|
消息中间件 存储 Kafka
分布式消息中间件设计与实现
本文深入探讨了消息中间件的核心功能实现与高并发、高可用设计。在生产者设计中,涵盖消息构造、序列化、路由策略及可靠性保障(如ACK机制)。消费者部分分析了拉取/推送模式、分区分配与消息确认机制。同时,Broker作为核心组件,负责消息路由、存储和投递,并通过索引技术实现快速检索。 高并发设计方面,重点讨论了文件存储(顺序写入、分段存储)、日志结构存储及负载均衡策略(如哈希分区、轮询分区)。为确保高可用性,文章详细解析了主从复制、故障转移机制以及同城/异地多活容灾方案。
598 13
|
存储 缓存 监控
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
330 1
|
消息中间件 存储 中间件
分布式消息中间件基础
消息中间件是一种基于异步消息传递的分布式系统通信工具,核心功能包括消息传输、存储、路由与投递,能够实现系统解耦、异步处理和流量削峰。其主要组件包括生产者、消费者、Broker、主题/队列等,支持点对点和发布-订阅两种消息模型。主流中间件如Kafka(高吞吐)、RabbitMQ(灵活路由)、RocketMQ(事务支持)各有特色,适用于不同场景。此外,中间件还涉及多种协议(AMQP、MQTT等)、可靠性传输机制(持久化、确认机制)、顺序性与重复性问题解决以及事务支持(两阶段提交、本地消息表等)。选择中间件需根据业务需求权衡性能、功能和运维成本。
800 6
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
487 3
|
消息中间件 网络协议 Java
消息中间件-ActiveMQ
消息中间件-ActiveMQ
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
消息中间件 NoSQL Kafka
消息中间件(RocketMQ、RabbitMQ、ActiveMQ、Redis、kafka、ZeroMQ)以及之间的区别
消息中间件(RocketMQ、RabbitMQ、ActiveMQ、Redis、kafka、ZeroMQ)以及之间的区别
|
消息中间件 存储 监控
Java一分钟之-ActiveMQ:消息中间件
【6月更文挑战第11天】Apache ActiveMQ是广泛使用的开源消息中间件,支持JMS和多种消息协议。本文介绍了ActiveMQ的基础知识,包括消息队列和主题模型,以及持久化和高可用性配置。同时,提出了三个常见问题:配置不当、消息堆积和网络错误,并给出了相应的解决策略。通过Java示例代码展示了如何使用ActiveMQ发送和接收消息。正确配置、管理消息处理和持续监控是确保ActiveMQ高效运行的关键。
459 2
|
消息中间件 Java 中间件
Java中的消息中间件与异步通信实现
Java中的消息中间件与异步通信实现
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
832 2