rabbitmq学习——主题路由
public class Send {
public static final String exchangeName = "topic_logs";
public static void main(String[] args) throws Exception{
Connection connection = ChanncelFactory.getChanncelFactory();
Channel channel = connection.createChannel();
//主题路由
channel.exchangeDeclare(exchangeName, "topic");
String body = "主题路由";
channel.basicPublish(exchangeName, "com.bonc.ioc", null, body.getBytes());
ChanncelFactory.close(channel, connection);
}
}
public class Receive {
public static void main(String[] args) throws Exception {
Connection connection = ChanncelFactory.getChanncelFactory();
Channel channel = connection.createChannel();
channel.exchangeDeclare(Send.exchangeName, "topic");
String queuename = channel.queueDeclare().getQueue();
// * 代表一个单词 #代表一个或者多个单词
channel.queueBind(queuename, Send.exchangeName, "com.#");
Consumer callback = new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
BasicProperties properties, byte[] body) throws IOException {
System.out.println("内容:"+new String(body,"utf-8"));
}
};
for(int i=1; i<6; i++){
Thread.sleep(2000);
channel.basicConsume(queuename, true, callback);
}
ChanncelFactory.close(channel, connection);
}
}