1、简介
ActiveMQ 自己看百科
2、下载安装
去 apache 官网下载,http://archive.apache.org/dist/activemq/
3、安装
a、解压
tar -xvf apache-activemq-5.14.4-bin.tar.gz
b、拷贝到/usr/local下
mv apache-activemq-5.14.4 /usr/local/activemq
c、启动
bin/activemq start
d、启动后可以通过8161端口访问
http://10.0.0.12:8161
e、设置访问账号密码:
在 conf/activemq.xml 中的 broker 节点中加入如下代码,设置消息的发送接收账号密码:
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="manager" password="123456" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins>
在 conf/jetty.xml 文件中找到bean 的name为 securityConstraint的修改为如下内容:
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint"> <property name="name" value="BASIC" /> <property name="roles" value="admin" /> <property name="authenticate" value="true" /> </bean>
在文件conf/jetty-realm.properties中设置网页登录的账号密码
# 账号: 密码,[角色,角色] admin: 123456, admin
设置完成后,打开d步骤的地址,提示输入会提示输入账号密码
4、Activemq持久化到mysql数据库
修改配置文件conf/activemq.xml,找到 persistenceAdapter 节点,修改为如下内容
<persistenceAdapter> <jdbcPersistenceAdapter dataSource="#mysql-ds"/> </persistenceAdapter>
在该文件的beans节点加如下配置 就是spring xml方式配置一个 数据库链接
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> <property name="maxActive" value="200"/> <property name="poolPreparedStatements" value="true"/> </bean>
5、java代码链接
protected ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("manager" , "123456" , "tcp://10.0.0.12:61616"); @Test public void testSend()throws Exception{ try { Connection conn = connectionFactory.createConnection(); conn.start(); Session session = conn.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); Queue destination = session.createQueue("FirstQueue"); MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); for(int x=0;x<10;x++){ TextMessage textMessage = session.createTextMessage("ActiveMq 发送的消息" + x); producer.send( textMessage ); session.commit(); } conn.close(); } catch (Exception e) { e.printStackTrace(); } } @Test public void testReceiver()throws Exception{ Connection conn = connectionFactory.createConnection(); conn.start(); Session session = conn.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); Queue destination = session.createQueue("FirstQueue"); MessageConsumer consumer = session.createConsumer(destination); while (true) { //设置接收者接收消息的时间,为了便于测试,这里谁定为100s TextMessage message = (TextMessage) consumer.receive(100000); if (null != message) { System.out.println("收到消息" + message.getText()); } else { break; } } }
a、在application.properties文件中加入activemq的配置
spring.activemq.user=manager spring.activemq.password=123456 spring.activemq.brokerUrl=tcp://10.0.0.12:61616
b、spring boot + activemq 创建监听类
import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; public class ConsumerMessageListener implements MessageListener { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println( textMessage.getText()); } catch (Exception e) { e.printStackTrace(); } } }
定义bean DefaultMessageListenerContainer
@Bean @Autowired public DefaultMessageListenerContainer container(ConnectionFactory connectionFactory ){ DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setDestination(new ActiveMQQueue("default_queue")); container.setMessageListener(new ConsumerMessageListener()); container.setConcurrentConsumers(2); container.setConcurrency( "2-5" ); return container ; }
使用JmsTemplate发送消息
@Autowired private JmsTemplate jmsTemplate; Map<String, Object> map = new HashMap<String, Object>(); map.put("userid", "1"); map.put("username", "admin"); final String mapStr = JSON.toJSONString(map); jmsTemplate.send(destination, new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { TextMessage textMessage = session.createTextMessage(mapStr); return textMessage; } });
c、发布topic
ActiveMQTopic activeMQTopic = new ActiveMQTopic("topic001"); jmsTemplate.send(activeMQTopic, new MessageCreator(){ @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("你好"); } });
d、订阅topic
@Bean @Autowired public DefaultMessageListenerContainer container2(ConnectionFactory connectionFactory ){ DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setDestination(new ActiveMQTopic("topic001")); container.setMessageListener(new ConsumerMessageListener()); container.setConcurrentConsumers(1); container.setConcurrency( "1" ); return container ; }
相关推荐
《ActiveMQ消息服务器详解》 Apache ActiveMQ是业界广泛使用的开源消息代理,它遵循Java Message Service(JMS)规范,提供了可靠的消息传递服务。ActiveMQ v5.17.6是该服务器的一个稳定版本,包含了丰富的功能和...
**ActiveMQ消息服务器 v5.18.3** Apache ActiveMQ是开源的、基于Java的消息传递平台,它作为企业级消息中间件(Message Broker)在IT行业中扮演着关键角色。ActiveMQ提供了高度可靠的消息传递服务,支持多种消息...
### ActiveMQ消息服务配置详解 #### 一、ActiveMQ配置概览 ActiveMQ是一款非常流行的开源消息中间件,它基于Java开发,支持多种消息传递模式,如点对点(P2P)、发布/订阅(Pub/Sub)等。本文将详细介绍ActiveMQ的配置...
在标题中提到的"archive_ ActiveMQ消息服务器 v5.17.5 [江西新余电信].zip.zip",我们可以推断这可能是一个包含ActiveMQ服务器版本5.17.5的归档文件,源自江西新余电信的服务器。这个压缩包很可能包含了运行和配置...
要使用这个压缩包,首先需要解压"ActiveMQ消息服务器 v5.18.2 [江西新余电信].zip"文件,然后根据提供的文档和示例配置启动服务器。一旦服务器运行,就可以通过输出.txt文件中可能记录的日志信息来监控服务器状态,...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递标准(JMS,Java Message Service),用于在分布式系统中实现可靠的消息传递。在本文中,我们将深入探讨ActiveMQ v6.0.1的核心特性、应用...
1.ActiveMQ消息队列中间件 1.1.什么是ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,...
为您提供ActiveMQ消息服务器下载,ActiveMQ是Apache出品的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演...
ActiveMQ,作为一款流行的开源消息中间件,也支持WebSocket协议,使得客户端可以通过WebSocket接口来接收和发送消息。 ActiveMQ是Apache软件基金会开发的消息队列产品,它遵循开放标准,如JMS(Java Message ...
主要介绍了Docker学习之搭建ActiveMQ消息服务的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ActiveMQ是一款非常流行的开源消息队列中间件,它实现了JMS(Java Message Service,Java消息服务)1.1规范,面向消息的中间件(Message Oriented Middleware,MOM)是指利用高效可靠的消息传递机制进行与平台无关的...
通过以上步骤,你可以成功地将ActiveMQ消息队列与Spring框架整合,实现基于主题订阅的消息传递。这种整合有助于解耦系统组件,提高系统的可扩展性和容错性,同时也简化了并发和负载均衡的实现。在实际项目中,还可以...
在本教程中,我们将探讨如何整合Spring框架与ActiveMQ消息队列,实现前后台的消息传递。这有助于提升系统的可扩展性和响应速度,降低不同组件之间的耦合度。 首先,Spring框架是Java企业级应用开发的事实标准,它...
### ActiveMQ消息总线介绍 #### 一、消息中间件(Message-Oriented Middleware, MOM)概述 消息中间件是一种软件技术,它通过在不同系统之间传输和分发消息来连接网络中的独立系统。这种技术的核心是围绕一个队列...
例如,创建一个服务类,其中包含一个方法用于发送消息: ```java @Autowired private JmsMessagingTemplate jmsMessagingTemplate; public void sendMessage(String message) { jmsMessagingTemplate....
本主题主要围绕“activemq消息持久化所需Jar包”展开,将深入探讨ActiveMQ的消息持久化机制及其相关依赖。 首先,了解消息持久化的概念至关重要。在分布式系统中,消息持久化是指当消息代理(如ActiveMQ)接收到...
ActiveMQ收发工具的核心功能是通过Java应用程序发送和接收ActiveMQ消息。这个jar包简化了对ActiveMQ服务器的交互过程,使得开发者无需编写复杂的代码就能进行消息传递的测试和调试。通过在命令行中执行`java -jar ...
【ActiveMQ消息中间件面试专题】深入解析 1. 什么是 ActiveMQ? ActiveMQ 是一个开源的、基于 Java 的消息中间件(MOM),它遵循 JMS 1.1 规范,为开发者提供了高效、可扩展、稳定和安全的企业级消息通信能力。通过...
### ActiveMQ消息中间件知识点详解 #### 一、ActiveMQ简介 **ActiveMQ**是一款流行的开源消息中间件,它遵循JMS(Java消息服务)1.1标准,为应用程序提供了高效、可扩展、稳定和安全的企业级消息通信能力。作为一款...
ActiveMQ遵循Java Message Service (JMS) 1.1 和 Java 2 Platform, Enterprise Edition (J2EE) 1.4 规范,为开发者提供了高效稳定的消息传输服务。 #### 二、ActiveMQ的核心特点 1. **多语言和跨平台支持**:除了...