本文主要是介绍ActiveMQ消息处理机制-Topic方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
特点: Topic方式每个消息都可以有多个订阅者(消费者),只要消费者订阅了这个主题(Topic),就可以获得这个消息。发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态(也就是说在必须先启动消费者那方)。
所以在代码中得先启动消费者的服务,再发送消息。
1.生产者
只需要改动queue方式中的代码destination=session.createQueue(“FirstQueue1”); // 创建消息队列
改为创建Topic就可以了。destination=session.createTopic(“FirstTopic1”);//创建topic
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
/*** 消息生产者-消息发布者* Topic 方式**/
public class JMSProducer {private static final String USERNAME=ActiveMQConnection.DEFAULT_USER; // 默认的连接用户名private static final String PASSWORD=ActiveMQConnection.DEFAULT_PASSWORD; // 默认的连接密码private static final String BROKEURL=ActiveMQConnection.DEFAULT_BROKER_URL; // 默认的连接地址private static final int SENDNUM=10; // 发送的消息数量public static void main(String[] args) {ConnectionFactory connectionFactory; // 连接工厂Connection connection = null; // 连接Session session; // 会话 接受或者发送消息的线程Destination destination; // 消息的目的地MessageProducer messageProducer; // 消息生产者// 实例化连接工厂connectionFactory=new ActiveMQConnectionFactory(JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BRO
这篇关于ActiveMQ消息处理机制-Topic方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!