- 浏览: 595964 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Topic实现publish和subscribe语义:
一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。
这个例子可以先开启生产者,然后再进行消费。
两个订阅的消费者
一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。
这个例子可以先开启生产者,然后再进行消费。
/** * */ package activeMQ.topicMessage; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.Test; /** * @author Test * @createDate 2014-6-22上午10:57:35 * @className TopicMsgProducer.java * @useFor */ public class TopicMsgProducer { public void send() { //创建连接工厂 ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection conn = null; try { //创建连接 conn = factory.createConnection(); conn.start(); //创建会话 Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建地点 Topic topic = session.createTopic("topic.textMsg"); //创建生产者 MessageProducer producer = session.createProducer(topic); producer.setDeliveryMode(DeliveryMode.PERSISTENT); producer.setTimeToLive(Message.DEFAULT_TIME_TO_LIVE); for(int i=0 ; i<10 ;i++) { TextMessage tmsg = session.createTextMessage(); tmsg.setText("早上你好 "+i); producer.send(tmsg); System.out.println("发送的消息:"+tmsg.getText()); } } catch (JMSException e) { e.printStackTrace(); } finally { } } @Test public void test() { new TopicMsgProducer().send(); } }
两个订阅的消费者
/** * */ package activeMQ.topicMessage; import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms.TopicSubscriber; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.Test; /** * @author Test * @createDate 2014-6-22上午10:58:42 * @className TopicMsgConsumer.java * @useFor */ public class TopicMsgConsumer { public void receive() { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection conn = null; try { conn = factory.createConnection(); conn.setClientID("T1"); conn.start(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); //订阅发布模式的 Topic对象 不是Destination Topic topic = session.createTopic("topic.textMsg"); TopicSubscriber subsriber = session.createDurableSubscriber(topic , "T1" ); while (true) { TextMessage tm = (TextMessage)subsriber.receive() ; if (tm == null) { break; } System.out.println("Msg1 Received message: " + tm.getText()); } } catch (JMSException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (JMSException e) { e.printStackTrace(); } } } } @Test public void test() { new TopicMsgConsumer().receive(); } }
/** * */ package activeMQ.topicMessage; import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms.TopicSubscriber; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.Test; /** * @author Test * @createDate 2014-6-22上午10:58:42 * @className TopicMsgConsumer.java * @useFor */ public class TopicMsg2Consumer { public void receive() { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection conn = null; try { conn = factory.createConnection(); conn.setClientID("T2"); conn.start(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); // 订阅发布模式的 Topic对象 不是Destination Topic topic = session.createTopic("topic.textMsg"); TopicSubscriber subsriber = session.createDurableSubscriber(topic , "T2" ); while (true) { TextMessage tm = (TextMessage)subsriber.receive() ; if (tm == null) { break; } System.out.println("Msg2 Received message: " + tm.getText()); } } catch (JMSException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (JMSException e) { e.printStackTrace(); } } } } @Test public void test() { new TopicMsg2Consumer().receive(); } }
发表评论
文章已被作者锁定,不允许评论。
-
ActiveMQ 三种发送消息方式(同步,异步,单向)
2017-11-17 10:25 2431MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、 ... -
ActiveMQ 传输协议总结
2017-08-23 10:48 736ActiveMQ支持的client-broker: Tran ... -
ActiveMQ 结合Spring进行数据同步
2017-07-19 15:27 580注意事项hibernate配置文件必须设置自动提交否则不能插入 ... -
web activeMq连接池实现JMS消息发送连接管理
2014-05-08 15:11 6991.今天来说一下在使用到MQ时如果使用MQ的连接池。之前我也是 ... -
ActiveMQ JMS学习(ActiveMQ)
2014-04-28 10:35 588深入掌握JMS(一):JSM基础 1. JMS基本概念 ...
相关推荐
一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...
本教程将深入探讨ActiveMQ中的Topic特性,以及如何通过实例来理解和应用。 ActiveMQ Topic与Queue的主要区别在于消息分发方式。Queue采用点对点模型,每个消息只能被一个消费者接收并删除;而Topic遵循发布/订阅...
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...
在"ActiveMQ开发实例-1"中,你将学习如何使用 ActiveMQ-CPP 库进行基本的发布/订阅(Publish/Subscribe)和点对点(Point-to-Point)模式的消息传递。这两种模式是消息中间件中最常见的通信模型。 1. **发布/订阅...
本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式。 首先,我们需要了解ActiveMQ的基本概念。在消息队列中,生产者是发送消息的实体,而消费者则是接收和处理这些消息的实体。...
### ActiveMQ 使用手册知识点概述 #### 一、ActiveMQ 原理与基本构件 **1.1 连接工厂(Connection Factory):** - **定义:** 连接工厂是客户端用来创建连接的对象。在ActiveMQ中,`ActiveMQConnectionFactory` 类...
9. **Spring注解**:在提供的实例中,可能包含了使用注解的方式配置Spring与ActiveMQ的集成,如`@EnableJms`启动JMS支持,`@JmsListener`定义消息监听器等。 10. **Tomcat服务器**:Tomcat是一个流行的Java Web...
在ActiveMQ实例中,我们可能需要使用Java代码或者配置文件来设置生产者和消费者的连接,定义消息格式,以及指定消息的路由策略。同时,理解ActiveMQ的管理控制台也很重要,它提供了监控和管理消息队列、主题以及其他...
在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了多种消息协议,如JMS(Java消息服务)、AMQP(高级消息队列协议)等,为企业级...
### ActiveMQ开发实例核心知识点解析 #### 一、ActiveMQ简介 **ActiveMQ**是由Apache组织维护的一个开源项目,作为一款高性能的消息中间件,它在众多消息传递系统中脱颖而出。ActiveMQ不仅支持JMS 1.1和J2EE 1.4...
在这个"ActiveMQ简单Demo案例"中,我们将探讨如何使用ActiveMQ搭建服务器,并创建生成者(Producer)和消费者(Consumer)对象。 首先,我们需要理解JMS的概念。JMS是一个标准,定义了与消息传递系统交互的API,...
Spring 框架提供了与 ActiveMQ 集成的能力,使得开发者可以轻松地在 Spring 应用中使用 ActiveMQ。整合主要通过以下组件实现: 1. **Spring JMS**: Spring 提供了 JmsTemplate 类,它是发送和接收 JMS 消息的主要...
【ActiveMQ-JMS简单实例使用Tomcat】是一个关于如何在Tomcat环境下集成并使用ActiveMQ进行JMS消息传递的初级教程。ActiveMQ是一款开源的消息中间件,它遵循JMS(Java Message Service)1.1规范,能兼容J2EE1.4及以上...
本案例将详细讲解如何将Spring与ActiveMQ整合,以提升系统的可扩展性和解耦性。 1. **Spring框架**:Spring是一个全方位的开发框架,提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
在本文中,我们将深入探讨如何使用Spring MVC框架与ActiveMQ结合实现JMS(Java Message Service)实例。首先,让我们理解ActiveMQ和JMS的基本概念。 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了...
在"ActiveMQ开发实例-5"中,重点在于实际操作和实践,通过C++和MFC实现消息的发送和接收,结合其他实例资源,你可以更深入地理解ActiveMQ的使用和功能。通过这个实例,开发者可以将消息队列技术有效地应用于自己的...
在本场景中,我们关注的是如何使用C#编程语言结合ActiveMQ来实现发布/订阅模式的消息传送。ActiveMQ是Apache软件基金会开发的一个开源消息传递平台,支持多种协议,包括NMS(.NET Messaging Service),它是专门为...
总结起来,这个Spring Boot整合ActiveMQ的案例涵盖了如何配置和使用Queue与Topic,以及通过定时任务和Controller请求来发送消息。理解并掌握这些知识点,有助于我们在实际项目中构建高效、可靠的分布式消息传递系统...
本教程将引导你从基础到深入理解如何使用ActiveMQ,并通过实际的例子进行操作。 首先,我们要了解JMS是什么。Java Message Service(JMS)是一个Java API,它定义了应用程序如何创建、发送、接收和读取消息的标准...
本案例将重点讲解如何将Spring与ActiveMQ整合,以实现高效的消息传递功能。 首先,让我们了解Spring整合ActiveMQ的基础知识。Spring框架提供了对多种消息中间件的支持,包括ActiveMQ,通过其`spring-jms`模块,我们...