RocketMQsql92过滤消息

该代码示例展示了如何使用DefaultMQProducer和DefaultMQPushConsumer在分布式消息系统中发送和接收消息。生产者发送带有用户属性(age和weight)的消息,而消费者使用SQL筛选器按条件(age>22andweight>60)订阅并消费消息。
摘要由CSDN通过智能技术生成
//生产者

public class Producer {
    public static void main(String[] args) throws Exception{
        DefaultMQProducer producer = new DefaultMQProducer("sqlfilterProducerGroup");
        producer.setNamesrvAddr("10.0.0.130:9876");
        producer.start();
        String topic = "sqlFilterTopic";
        Message msg1 = new Message(topic, ("美女A,年龄22,体重45").getBytes(Charset.defaultCharset()));
        msg1.putUserProperty("age","22");
        msg1.putUserProperty("weight","45");

        Message msg2 = new Message(topic,  ("美女B,年龄25,体重60").getBytes(Charset.defaultCharset()));
        msg2.putUserProperty("age","25");
        msg2.putUserProperty("weight","60");

        Message msg3 = new Message(topic,  ("美女C,年龄40,体重70").getBytes(Charset.defaultCharset()));
        msg3.putUserProperty("age","40");
        msg3.putUserProperty("weight","70");
        producer.sendOneway(msg1);
        producer.sendOneway(msg2);
        producer.sendOneway(msg3);
        System.out.println("消息发送完毕");
        producer.shutdown();

    }
}

//消费者


public class Consumer {
    public static void main(String[] args) throws Exception {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("sqlfilterConsumerGroup");
        consumer.setNamesrvAddr("10.0.0.130:9876");
        consumer.subscribe("sqlFilterTopic", MessageSelector.bySql("age>22 and weight>60 "));
        consumer.setMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
                for (MessageExt msg : list) {
                    System.out.println("消息的内容" + new String(msg.getBody(), Charset.defaultCharset()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        consumer.start();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢少迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值