JMS消息订阅、临时主题与消息过滤详解
1. 消息类型处理
在处理消息时,首先需要对消息类型进行判断,示例代码如下:
if (message instanceof BytesMessage) {
//process request
} else {
throw new IllegalArgumentException("unsupported message type");
}
上述代码展示了对 BytesMessage 类型消息的处理逻辑,若消息不是 BytesMessage 类型,则会抛出异常。
2. 持久订阅者与非持久订阅者
2.1 非持久订阅者
非持久订阅者只有在主动监听某个主题时才能接收消息。例如,运行 TBorrower 类并发布多个利率, TBorrower 类会获取新利率并判断是否是合适的利率。但如果终止 TBorrower 类,发布新利率后再重启,它将无法获取在其未运行期间发布的利率。这是因为 TBorrower 类是作为非持久订阅者创建的,代码如下:
TopicSubscriber subscriber = tSession.createSubscriber(topic);
非持久订阅者的工作模式可以用以下流程图表示
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



