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