c语言实现java接口_使用RabbitMQ的Java接口实现round-robin

基本概念

简单队列的不足:

1. 耦合性高;

2. 如果生产者把生产队列该了,消费者也要同时改;

Work Queues工作队列,模型如下:

33fafd3c7d07c5b93adf7999ad128b10.png

代码与实例

程序运行截图如下:

生产者:

82753d46e54c07304ea92fef00ef23c6.png

两个消费者如下:

d9aa280f9287fddfc91188e6ccb519cb.png
fdf13165357f816da9ee6232e9f824a3.png

在源码中,消费者一个是1秒消费一次,一个是2秒消费一次,但从我们知道,RabbitMQ给他轮询分发。平均分配

程序结构如下:

8fd27c566fea701e4706bbc9a4962c1c.png

Send.java

package work; import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import util.ConnectionUtils; import java.io.IOException;import java.util.concurrent.TimeoutException; public class Send {  private static final String QUEUE_NAME = "test_work_queue";  public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {  Connection connection = ConnectionUtils.getConnect(); Channel channel = connection.createChannel();  //声明队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null);  for(int i = 0 ; i < 50; i++){  String msg = "Hello World : " + i; System.out.println("send msg : " + msg); channel.basicPublish(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值