RocketMQsql92过滤消息

//生产者

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();
    }
}

你可能感兴趣的:(分布式,rocketmq)