ActiveMq是什么?

目录

 

一.简介

二.什么是JMS?

三.JMS的俩种消息模型

1)点对点Point-to-point,

2)发布订阅Publish/Subscribe

四.什么是消息队列?

五.JMS的几个优势

异步

可靠

六.ActiveMQ 的几种使用场景

七.一些比较好的原创文章


一.简介

Apache ActiveMQ 是一种开源分布式消息中间件,Apache出品,实现Jms规范
官网:http://activemq.apache.org/

二.什么是JMS?

定义了俩个应用程序或者分布式系统发送消息的API,与具体实现平台无关,即JAVA_MESSAGE_SERVICE,还定义了一系列相关术语。是一个允许应用创建、发送、接收和读取消息的Java API

三.JMS的俩种消息模型

1)点对点Point-to-point,

1.即一条消息对应一个生产者和一个消费者,每个消息只能有一个消费者,即每个消息只能被其中一个消费者消费

2.消费的生产者和消费者之间没有时间上的相关性,无论消费者在生产者发送消息时是否处于运行状态,它都可以提取信息

6e03b6a4e792fe084c44b9b2edafaac3715.jpg

(解释:中间的就是队列,client1就是生产者,它向队列中发送消息,client2是消费者,它负责从队列中提起消息,消息完成后,队列中的消息也就消失了)

2)发布订阅Publish/Subscribe

1.每个消息可以被多个消费者消费,前提是这些消息已经对topic(主题进行了订阅)

2.消费者和消息这之间有时间上的相关性,订阅了该主题的的消费者只能消费改主题发布的消息,如果此时该消费者没有设置消息持久化,且没有在线,而主题已经完成了消息发布,那么该消息这不会收到那主题发布的消息。

7b72b9beb91870b9da63fd50e394e79abf3.jpg

(解释:topic为主题,client 1为生产者,它负责向主题发布消息,client 2和client 3均为订阅了该主题的消费者,但client 1发送消息,且client 2和3都在线,那么将可以收到消息

所以如果消息可以由任意多个消费者(或者没有任何消费者)处理,就可以使用发布/订阅消息传送方式)

四.什么是消息队列?

消息队列,一般我们将其简称为MQ (Message Queue),消息队列可以可以简单理解为:把要传输的数据放到队列中。

关于消息队列一篇讲解的比较好的文章:

https://blog.youkuaiyun.com/Stream_who/article/details/88184879

 

原文:https://blog.youkuaiyun.com/yue_2018/article/details/89305275

什么是消息队列?

 

五.JMS的几个优势

异步

  JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端。

可靠

  JMS保证消息只会递送一次。大家都遇到过重复创建消息问题,而JMS能帮你避免该问题。


 

六.ActiveMQ 的几种使用场景

1.异步调用     2.一对多通信

3.做多个系统的集成,同构,异构等

于我自己理解来说:  用途就是用来处理消息,也就是处理JMS的,消息队列在大型点子商务网站,如京东,淘宝等网站有着深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。

举个小例子:  在购物时,不直接给用户提示订单提交成功,而是提示“您提交了订单,请等待系统确认”,再由消息队列的消费者·1进程从消息队列中获取数据,异步写入数据库。

七.一些比较好的原创文章

有小例子,通俗易懂      https://blog.youkuaiyun.com/sihai12345/article/details/99860157

在 Linux 系统上安装 ActiveMQ 后,可以通过其内置的 Web 管理控制台进行登录和管理。以下是具体的步骤: ### 登录 ActiveMQ 管理界面 1. **确保 ActiveMQ 已启动** 在终端中执行以下命令以启动 ActiveMQ: ```bash ${ACTIVEMQ_HOME}/bin/activemq console ``` 如果 ActiveMQ 已经启动,则可以跳过此步骤。 2. **访问管理控制台** 默认情况下,ActiveMQ 的 Web 管理控制台运行在 `8161` 端口。可以通过浏览器访问以下地址: ``` http://<your-server-ip>:8161/admin ``` 其中 `<your-server-ip>` 是运行 ActiveMQ 的服务器 IP 地址。 3. **修改配置以允许远程访问** 如果无法访问管理控制台,请检查 `jetty.xml` 配置文件中的主机绑定设置。将 `127.0.0.1` 修改为 `:::` 以允许所有 IP 地址访问: ```xml <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="host" value=":::"/> <property name="port" value="8161"/> </bean> ``` 修改完成后重启 ActiveMQ 服务以应用更改。 4. **登录管理界面** 默认的登录凭证为: - 用户名:`admin` - 密码:`admin` 可以在 `conf/jetty-realm.properties` 文件中修改默认的用户名和密码。 5. **管理界面功能** 在管理控制台中,可以查看队列和主题的状态、发送和接收消息、监控连接状态等[^5]。 ### 示例代码 以下是一个简单的脚本,用于检查 ActiveMQ 是否正在运行: ```bash #!/bin/bash # 检查 ActiveMQ 进程是否存在 if pgrep -f "activemq" > /dev/null then echo "ActiveMQ 正在运行。" else echo "ActiveMQ 未运行。" fi ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值