![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息中间件
今天你敲代码了吗?
学如逆水行舟,不进则退
展开
-
订单一个时间段没有支付,需要对订单进行操作
场景:例如在美团点外卖,当长时间没有支付,订单会自动关闭;医院挂号,达到一个时间段没有支付,订单需要关闭,同时还需要取消锁号(取消号源,防止占坑不拉屎);抢火车票,没有支付,订单取消,座位释放等方式1:延迟队列(DelayQueue) 我们的第一反应是用 数据库轮序+任务调度 来实现此功能。但这种高效率的延迟任务用任务调度(定时器)实现就得不偿失。而且对系统也是一种压力且数据库消...原创 2019-10-14 11:24:37 · 822 阅读 · 0 评论 -
消息重试机制幂等性
如何合适选择重试机制情况1: 消费者获取到消息后,调用第三方接口,但接口暂时无法访问,是否需要重试? 需要重试情况2: 消费者获取到消息后,抛出数据转换异常,是否需要重试? 不需要重试总结:对于情况2,如果消费者代码抛出异常是需要发布新版本才能解决的问题,那么不需要重试,重试也无济于事。应该采用日志...原创 2019-10-14 09:25:02 · 603 阅读 · 0 评论 -
RabbitMQ的介绍和安装
官网文档:https://www.rabbitmq.com/getstarted.html参考文档:https://blog.csdn.net/hellozpc/article/details/81436980简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,Erlan...原创 2019-10-02 11:09:43 · 225 阅读 · 0 评论 -
rabbitMq-点对点(简单)的队列
简介对于rabbitMq的各个参数见:https://blog.csdn.net/vbirdbest/article/details/78670550 功能:一个生产者P发送消息到队列Q,一个消费者C接收 其中:P表示为生产者 、C表示为消费者 红色表示队列。代码使用amqp-client依赖...原创 2019-10-02 15:07:31 · 550 阅读 · 0 评论 -
rabbitMq-工作队列(work)
示例图:说明:1、消费者1和消费者2获取到的消息内容是不同的,同一个消息只能被一个消费者获取。2、消费者1和消费者2获取到的消息的数量是相同的,一个是消费奇数号消息,一个是偶数。其实,这样是不合理的,因为消费者1线程停顿的时间短。应该是消费者1要比消费者2获取到的消息多才对。RabbitMQ 默认将消息顺序发送给下一个消费者,这样,每个消费者会得到相同数量的消息。即轮询(roun...原创 2019-10-02 18:32:29 · 117 阅读 · 0 评论 -
rabbitMq-发布订阅-fanout
原理图:1、1个生产者,多个消费者2、每一个消费者都有自己的一个队列3、生产者没有将消息直接发送到队列,而是发送到了交换机4、每个队列都要绑定到交换机5、生产者发送的消息,经过交换机,到达队列,实现,一个消息被多个消费者获取的目的注意:一个消费者队列可以有多个消费者实例,只有其中一个消费者实例会消费生产者 // 1.创建新的连接 Connection conne...原创 2019-10-02 19:28:26 · 137 阅读 · 0 评论