一个生产者,一个默认的交换机,一个队列,两个消费者
默认情况下,如有有两个消费者,生产者for循环生产10条消息,RabbitMQ平均分配,每个消费者接收5条
一个生产者,一个交换机,两个队列,两个消费者
声明一个Fanout类型的exchange,并且将exchange和queue绑定在一起,绑定的方式就是直接绑定。
让生产者创建一个exchange并且指定类型,和一个或多个队列绑定到一起。
例如:
//3. 创建exchange - 绑定某一个队列 //参数1: exchange的名称 //参数2: 指定exchange的类型 FANOUT - pubsub方式用 , DIRECT - Routing方式用 , TOPIC - Topics方式用 channel.exchangeDeclare("pubsub-exchange", BuiltinExchangeType.FANOUT);//FANOUT扇形广播 channel.queueBind("pubsub-queue1","pubsub-exchange",""); channel.queueBind("pubsub-queue2","pubsub-exchange","");4、 Routing
一个生产者,一个交换机,两个队列,两个消费者
生产者在创建DIRECT类型的exchange后,根据RoutingKey去绑定相应的队列,并且在发送消息时,指定消息的具体RoutingKey即可。
例如:
//3. 创建exchange, routing-queue-error,routing-queue-info, channel.exchangeDeclare("routing-exchange", BuiltinExchangeType.DIRECT);//DIRECT定向 channel.queueBind("routing-queue-error","routing-exchange","ERROR"); channel.queueBind("routing-queue-info","routing-exchange","INFO"); //4. 发布消息到exchange,同时指定路由的规则 channel.basicPublish("routing-exchange","ERROR",null,"ERROR".getBytes()); channel.basicPublish("routing-exchange","INFO",null,"INFO1".getBytes()); channel.basicPublish("routing-exchange","INFO",null,"INFO2".getBytes()); channel.basicPublish("routing-exchange","INFO",null,"INFO3".getBytes());5、Topic,巧记,话题,啥啥话题都可以通通匹配
一个生产者,一个交换机,两个队列,两个消费者
生产者创建Topic的exchange并且绑定到队列中,这次绑定可以通过*和#关键字,对指定RoutingKey内容,编写时注意格式 xxx.xxx.xxx去编写, * 代表一个xxx,而#代表多个xxx.xxx,在发送消息时,指定具体的RoutingKey到底是什么。说白了就是匹配一个单词的情况,一般使用#号匹配0个或者多个单词,比如red是一个单词,这里说的是单词而不是字母!!!
1)Topic模式是最常用的模式,灵活,方便,强大;
2)使用Topic模式生产者在声明队列时需要制定消息到达队列方式为topic;
3)路由键和某模式匹配,主要有两种模糊匹配:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)