activeMQ持久化到数据库配置

2023-12-23 19:08

本文主要是介绍activeMQ持久化到数据库配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.修改conf/activemq.xml文件,添加一下配置

<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#dataSource"/>
</persistenceAdapter>

 
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/activeMQ?relaxAutoCommit=true"></property><property name="username" value="root"></property><property name="password" value="****"></property><property name="poolPreparedStatements" value="true"></property>
</bean>
2.将dbcp和jdbc驱动拷到activeMQ的lib目录下
3.以下代码实现
package com.suobei.activeMQ;import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;import javax.jms.*;/**
 * topic消息持久化订阅,持久到mysql
 * Created by wangmin on 2018/3/12 0012.
 */
public class TopicPersistentMysqlTest {/**
     * 编写消息的发送方,生产者
     */
    @Test
    public void test1() throws JMSException {//1.创建连接工厂对象
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://www.itroot.top:61616");//2.获取连接对象
        Connection connection = connectionFactory.createConnection();System.out.println(connection);//3.连接MQ服务
        connection.start();//4.获得session
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.通过session创建主题
        Topic topic = session.createTopic("itRootTopic");//6.通过session对象创建消息的消费者
        MessageProducer messageProducer = session.createProducer(topic);//7.创建一条消息
        TextMessage textMessage = session.createTextMessage("起床了...啦啦啦");//8.发送消息
        messageProducer.send(textMessage,DeliveryMode.PERSISTENT,1,1000*60*60*24);//关闭资源
        messageProducer.close();session.close();connection.close();}/**
     * 消息的消费者,接收方
     * @throws JMSException
     */
    @Test
    public void test2() throws JMSException {//1.创建连接工厂对象
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://www.itroot.top:61616");//2.获取连接对象
        Connection connection = connectionFactory.createConnection();//设置客户端id
        connection.setClientID("client-1");//3.连接MQ服务
        connection.start();//4.获得session
        final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.通过session创建主题
        Topic topic = session.createTopic("itRootTopic");//6.通过session对象创建持久化消息的消费者
        TopicSubscriber consumer = session.createDurableSubscriber(topic, "client1-sub");consumer.setMessageListener(message -> {//当我们监听的topic中存在消息时,这个方法自动执行
            TextMessage textMessage= (TextMessage) message;try {System.out.println("接收到消息:"+textMessage.getText());} catch (JMSException e) {e.printStackTrace();}});while (true){}}
}

这篇关于activeMQ持久化到数据库配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529134

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1