Msgjava轮询机制的问题

 
 
三、Main函数中创建java轮询机制任务並设置java轮询机制的时间间隔
 //创建触发器 每10秒钟执行一次
 //将任务及其触发器放入调度器
 //调度器开始调度任务
 
 
四、执行main函数,查看控制台输出
 

java用while循环设计java轮询机制线程的性能问题

       java轮询机制线程在开发过程中的应用是比較广泛的在这我模拟一个场景,有一个队列和java轮询机制线程主线程往队列中入队消息,java轮询机制线程循环从队列中读取消息并打印消息内容有点类似Android中Handler发送消息。

首先定义一个Message类

消息确认是指生产端投递消息後,如果Broker收到消息则会给我们生产端一个应答。生产端接收应答用来确定这条消息是否正常发送到Broker,这种方式也是消息可靠性投递的核心保障!

如何实现消息确认机制

我们需要实现消息确认机制,首先我们必须要开启这种机制

 
 

现在我们开启了生产端消息确认机制,但當Broker收到消息给我们生产端一个应答,我们需要有处理这个应答的方法(异步回调方法处理消息发送成功或者失败这很像博主之前用AIO模型实现的简易多人聊天室,也是异步回调)所以需要一个处理应答的回调函数,根据具体的结果对消息进行重新发送、或记录日志等后續处理如下:

 

现在我们实现了消息确认机制,生产端投递消息Broker收到消息,给生产端一个应答如果消息成功收到,回调函数会输出ack否则输出no ack

我们这里使用的是默认交换机它的路由规则可以看看下面这篇博客。

运行生产端会发现每次运行结果都可能不一样会有多種情况出现,因为Broker会进行优化有时会批量一次性Confirm ,有时会分开几条Confirm


  

  

还有其他情况就不列举了。

我们来看看RabbitMQ Management40条消息准备好了,因为峩启动了四次生产端来进行测试
现在,我们启动消费端消费端也成功收到了这40条消息。

我们再来看看RabbitMQ Management很显然消息已经全部被消费者接收了。

我要回帖

更多关于 什么是轮询 的文章

 

随机推荐