mq服务器与客户端消息同步,使用 ActiveMQ 实现JMS 异步调用

本文介绍了如何利用ActiveMQ实现服务间异步调用,通过队列(Queue)和主题(Topic)解决点对点通信和发布订阅问题。文中展示了如何启动ActiveMQ服务器,配置Spring Boot应用,以及创建生产者和消费者的示例代码,以实现客户端与服务端的异步消息传递。
摘要由CSDN通过智能技术生成

目录

简介

服务之间的同步调用,可以使用 HTTP 或 RPC 来完成,但并非所有的调用都需要同步,有些场景下,当客户端调用服务端时,并不需要等待服务端做出响应,此时就应该使用异步调用。异步调用的常用方式是基于 MQ (Message Queue) 来实现的。下文会以 ActiveMQ 为例进行讲解。

ActiveMQ 是 Java 世界中最为流行的开源消息中间件,它不仅功能强大,而且性能稳定。它可全面支持 JMS(Java 消息服务)技术规范,为 Java 应用程序提供标准的 JMS API。

此外 ActiveMQ 具备与 Spring 框架整合的能力,它一直都是 Spring 应用程序的消息中间件标配。同样, Spring Boot 也提供了 ActiveMQ 的开箱即用的插件,只需要几项配置,就能接入 ActiveMQ,并轻松使用 JMS API 编写异步消息通信程序。

Active MQ 官网地址如下

http://activemq.apache.org

启动 ActiveMQ 服务器

先使用 docker 安装 ActiveMQ ,目前 ActiveMQ 官方并未提供相应的 Docker 镜像,我们选择使用第三方镜像 webcenter/activemq 。

docker pull webcenter/activemq:5.14.3

接下来运行 ActiveMQ

docker run -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=admin --name activemq webcenter/activemq:5.14.3

在启动 ActiveMQ 容器时,容器对宿主机暴露了两个端口号:

8161: 表示 ActiveMQ 控制台端口号,可在浏览器中通过控制台来执行 ActiveMQ 的相关操作

61616: 表示 ActiveMQ 所监听的 TCP 端口号,应用程序可通过该端口号与 ActiveMQ 建立 TCP 连接,并完成后续的异步消息通信

此外,在启动 ActiveMQ 容器时,还提供了两个环境变量

ACTIVEMQ_ADMIN_LOGIN: 用于设置控制台管理员的用户名,默认为 admin

ACTIVEMQ_ADMIN_PASSWORD: 用于设置控制台管理员的密码,默认为 admin

查看控制台

webcenter/ac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值