使用Mq实现延时队列

在实际的应用开发中,下游系统并不需要立即处理上游系统的mq,但是又不可能将消息阻塞在上有系统中。且这两个系统之间又没有接口提供出来。这个时候就需要通过Mq的死信队列来实现一个延时效果

简介

由于Mq的发送方不支持延迟发送(目前的新版本可以使用插件来支持,但是可能由于公司的其他限制,导致无法升级),这时候就需要使用Mq的死信队列来实现延时队列

一般情况下,Mq的发送流程如下:

阅读更多

Rabbitmq深度学习二

消息的接收和拒绝

当消费段接收到一个消息之后,会进行消费的处理。假如在业务中发现该消息是一个错误的消息,那么很显然业务方会直接拒绝此条消息。

拒绝消息

拒绝消息一般在消费端调用reject或者neck,这两个Api的作用分别是:一个可以批量消息,一个则只是每一次处理一条

接收消息

阅读更多

Rabbitmq深度学习一

rabbitmq 深度学习一

简介

rabbitmq是目前使用最多的一个消息中间件,配合微服务的使用可以使业务模块化,便于之后的维护。同时使用rabbitmq可以将许多业务异步化,提高系统的性能。

队列的创建原则

但是在使用rabbitmq 的时候需要注意点就是到底是生产者来建立队列和交换机还是由消费者来建立交换机和队列。一般的情况是由消费者来建立队列,但是假如消费者挂掉了,导致生产者发出的消息被交换机路由到了一个不存在的队列,那么此时 rabbitmq会忽略该条消息。所以对于重要的消息。即不允许该消息丢失,那么此时最好是由生产者和消费者一起船创建一个队列。

阅读更多