如何实现activemq的topic的持久订阅
发布网友
发布时间:2022-05-02 08:42
我来回答
共2个回答
热心网友
时间:2023-10-14 07:58
持久订阅,就要记录消费者的名字了。
张三说,我是张三,有馒头给我留着,我回来拿;
李四说,我是李四,有馒头给我留着,我回来拿;
参考例子如下:
// 创建connection
connection = connectionFactory.createConnection();
connection.setClientID("bbb"); //持久订阅需要设置这个。
connection.start();
// 创建session
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
// 创建destination
Topic topic = session.createTopic("userSyncTopic"); //Topic名称
//MessageConsumer consumer = session.createConsumer(topic); //普通订阅
MessageConsumer consumer = session.createDurableSubscriber(topic,"bbb"); //持久订阅
热心网友
时间:2023-10-14 07:59
你发送的时候,如果是topic,如果不是持久化订阅,那么只要没有消费者,消息自动被丢弃。如果topic是持久的,那么会存储到数据库中的。你可以设置连接到 数据库,然后发送消息的时候选择持久化,那么你在数据库中就会看到这条记录。