jms 消息服务器,JMS主题订阅服务器未连接时不接收消息

我有一个发布者正在发布关于主题的消息,我有两个订阅者1&s2正在接收消息。当我的发布者发送一条消息,并且两个订户都已启动时,他们都会收到该消息。但是,当我的订户

向上,我的发布者发送一条消息,然后当订阅者上来时,他们就不会收到该消息。我的订阅者如何在未启动时接收发送的消息?

注意:我用的是弹簧靴。

消息生产者.java

@RestController

@RequestMapping("/rest/produce")

public class MessageProducer {

private static final Logger LOG = LoggerFactory.getLogger(MessageProducer.class);

@Autowired

public JmsTemplate jmsTemplate;

@GetMapping("/{message}")

public void run(@PathVariable("message") final String message) throws Exception {

final String messageText = "Hello Blockchain World";

LOG.info("============= Sending " + message);

sendMessage(message);

}

public void sendMessage(String payload) {

this.jmsTemplate.convertAndSend("example", payload);

}

}

application.properties-(消息生产者)

spring.qpidjms.remoteURL=amqp://127.0.0.1:5672

spring.qpidjms.username=admin

spring.qpidjms.password=admin

activemq.broker-url=tcp://localhost:61616

server.port=8888

spring.jms.pub-sub-domain=true

消息消费者.java

@Component

public class MessageConsumer {

private static final Logger LOG = LoggerFactory.getLogger(MessageConsumer.class);

@JmsListener( destination = "example")

public void processMsg(String message) {

LOG.info("============= Received: " + message);

}

}

MessageConsumer主发起程序类(忽略类名)

@SpringBootApplication

@EnableJms

public class QpidJMSSpringBootHelloWorld {

public static void main(String[] args) {

SpringApplication.run(QpidJMSSpringBootHelloWorld.class, args);

}

}

第二个使用者与第一个使用者相同。应用程序属性中的端口号已更改。

application.properties(messageconsumer-1,s1)

spring.qpidjms.remoteURL=amqp://127.0.0.1:5672

spring.qpidjms.username=admin

spring.qpidjms.password=admin

activemq.broker-url=tcp://localhost:61616

server.port=9999

spring.jms.pub-sub-domain=true

应用程序属性(s2)

spring.qpidjms.remoteURL=amqp://127.0.0.1:5672

spring.qpidjms.username=admin

spring.qpidjms.password=admin

activemq.broker-url=tcp://localhost:61616

server.port=9990

spring.jms.pub-sub-domain=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值