在天蓝色服务总线中支持JMS消息选择器

时间:2019-07-09 11:20:53

标签: azureservicebus

目前看来,Azure服务总线不支持JMS中可用的消息选择器选项。何时支持?仅供参考,我们正在使用apache qpid JMS api消耗来自azure服务总线的消息。

使用Apache Qpid的JMS API,我们为azure服务总线主题和队列创建了消息生产者和使用者。我们在JMS中尝试了消息选择器选项,但是azure服务总线似乎并未基于这些选项过滤消息。想知道何时支持?

消费者方面

创建一个名为topicname的主题

Topic topic = session.createTopic("topicname");
// set filter options using message selector
String filterOption = "country = 'US' AND state = 'California'"

MessageConsumer consumer = session.createConsumer(topic,filterOption);

发布者附带代码

TopicSession topicSession = topicConn.createTopicSession(false,
                    Session.AUTO_ACKNOWLEDGE);

// create a topic publisher
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
topicPublisher.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// create the "Hello World" message
TextMessage message = topicSession.createTextMessage();
message.setText("hello world");
// Set two properties country and state
message.setStringProperty("country","US");
message.setStringProperty("state","New Jersey");
// Publish the message
topicPublisher.publish(message);

在上面的示例中,由于filter选项设置为仅在message属性的国家/地区设置为'US'且状态设置为'California'时才接收消息。但是对于azure服务总线,此过滤器选项将不被接受,因此,消费者会将所有消息发布到该队列。

0 个答案:

没有答案