阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_9.RabbitMQ研究-工作模式-发布订阅模式-消费者
消费者需要写两个消费者
定义邮件的类
复制以前的代码到邮件类里面进行修改
最上面 声明队列的名称和交换机的名称
监听修改为email 的队列的名称
手机短信接收端
复制一份email的接收端的代码 改名叫做sms
队列的名称改成短信的队列名称
启动程序测试
先启动生产者
生产者启动后就发送了5条消息出去
可以看到我们新建的交换机
点击交换机进来,显示绑定了两个队列
我们的代码Routing Key设置的为空
可以看到每个队列都有5条消息
启动消费者,启动email的消费者
email消费者读取了5条消息
此时队列里面已经没有了 消息
启动手机短信消费者
也读取了5条消息
总结
交换机这里绑定两个对列
一个链接里面可以建多个通道。
我们启动了两个进程 就占两个链接
每个连接里面都有一个通道
点开第一个通道。通道里面显示有一个消费者,这是消费者的标签。
消费者标签由于我们指定,所以就是一个随即的号
消费者就有绑定队列
另外一个通道绑定的是手机短信的队列
重新运行生产者的程序
两个消费者分别都接收到了这5条消息
发布订阅可以实现工作队列模式
工作队列的模式是,多个消费者监听一个队列。
我们可以再去创建一个队列c3去监听c1的队列。
手机短信的队列已经启动起来了
再启动一个手机短信的队列
现在就有三个通道
启动两个通道是监听短信的
再次发送消息
email只有一个监听 所以接收到了5条
短信的有两个监听,所以是轮询的方式
一个监听短信的收到 了3条 另外一个个收到了两条。
发布订阅完全具备了工作队列的模式,比工作队列的模式更加强大