IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 基于JMS的ActiveMQ整合SpringBoot -> 正文阅读

[Java知识库]基于JMS的ActiveMQ整合SpringBoot

一、消息队列MQ(Message Queue)

参考书籍:《Spring Boot+Vue全栈开发实战》

消息队列( Message Queue )是种进程间或者线程间的异步通信方式,消息生产者在产生消息后,会将消息保存在消息队列中,直到消息消费者来取走它 ,即消息的发送者和接收者不需要同时与消息队列交互,使用消息队列可以有效实现服务的解耦,并提高系统的可靠性以及可扩展性。

1. JMS(Java Message Service)

JMS(Java Message Service)Java消息服务,字面上来看,是仅支持Java平台,消息服务,无非就是对外提供服务,也就是提供API。它通过统一JAVA API层面的标准,使得多个客户端可以通过JMS进行交互,大部分消息中间件提供商都对JMS提供支持,JMS和ActiveMQ的关系就像JDBC和JDBC驱动的关系。JMS包括两种消息模型:点对点和发布者/订阅者。

2.ActiveMQ简介

Apache ActiveMQ是个开源的消息中间件,它不仅完全支持 JMS1.1规范,而且支持多种编程语言,同时还提供了对spring框架的支持,以及集群的支持。

3. ActiveMQ安装

ActiveMQ都是安装在Linux上的,因此,本案例的安装环境为CentOS 7, ActiveMQ版本为15.4.14 ,安装步骤如下(注意,要运行ActiveMQ,CentOS 上必须安装 Java 运行环境)

# 1.下载ActiveMQ
wget http://mirrors.hust.edu.cn/apache//activemq/5.15.14/apache-activemq-5.15.14-bin.tar.gz

# 2.解压下载文件
tar -zxvf apache-activemq-5.15.14-bin.tar.gz

# 3.启动ActiveMQ
cd apache-a
ctivemq-5.15.14
cd bin/
./activemq start

# 查看ActiveMQ的状态
./activemq status
# 停止ActiveMQ
./activemq stop

启动成功后,在浏览器输入http://localhost:8161,8161ActiveMQ 默认端口号,这时候需要进行登录,默认账号密码都是admin,登录成功后如下:

点击"Manage ActiveMQ broker"链接进入管理员控制台,如下:

4. ActiveMQ整合SpringBoot

由于 JMS 是一套标准,因此 Spring Boot 整合 JMS 必然就是整合 JMS 的某一个实现,本案例以ActiveMQ 为例来看 Spring Boot 如何进行整合。

Spring Boot ActiveMQ 置提供了相关的“ Starter ”,因此整合非常容易。首先创建 Spring Boot 项目,添加 ActiveMQ 依赖,pom.xml代码如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

配置文件application.yml如下:

spring:
  activemq:
    # 配置broker地址,默认端口为61616
    broker-url: tcp://localhost:61616
    packages:
      # 支持发送对象消息
      trust-all: true
    # ActiveMQ的账号和密码
    user: admin
    password: admin

自定义消息类,如下:

public class Message implements Serializable {

    private String content;
    private Date date;
 	
    // 省略get set toString...
}

接下来在项目创建一个Jms组件,如下:

@Component
public class JmsComponent {

    // spring提供的消息发送模板
    @Autowired
    JmsMessagingTemplate jmsMessagingTemplate;

    /**
     * 消息发送,目标为"target"的消费者将接收到该消息
     * @param msg
     */
    public void send(Message msg) {
        jmsMessagingTemplate.convertAndSend(new ActiveMQQueue("target"), msg);
    }

    /**
     * 消息消费者订阅的目标为"target"
     * @param msg
     */
    @JmsListener(destination = "target")
    public void receive(Message msg) {
        System.out.println("receive:" + msg);
    }
}

测试类中调用JmsComponent组件进行消息发送,如下:

@SpringBootTest
class ActivemqApplicationTests {

    @Autowired
    JmsComponent jmsComponent;

    @Test
    void contextLoads() {
        // 实例化自定义消息类
        Message msg = new Message();
        msg.setContent("hello activemq...");
        msg.setDate(new Date());
        // 发送消息
        jmsComponent.send(msg);
    }

}

成功后输出如下:

在控制面板中可以看到发送的消息个数:

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:22:29  更:2022-03-04 15:24:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:05:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码