![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MQ
文章平均质量分 89
RabbitMQ,ActiveMQ
spring_root
学海无涯
展开
-
ActiveMQ在分布式项目中的实际应用
具体需求:后台添加商品后,需要执行两个操作: 同步索引库(商品搜索使用了Solr实现) 生成静态页面(使用freemarker) 实现构思:使用消息队列。MQ作为消息中间件,传递的消息内容为新增商品的ID。准备工作:在需要的地方添加相应的依赖(基础依赖就不再说了)商品服务需要发送商品添加消息,所以需要添加三个依赖,分别是整合Spring需要的两个Jar和ActiveMQ的Jar:<dependency><groupId>org.s.原创 2021-08-01 11:29:39 · 95 阅读 · 0 评论 -
RabbitMQ实现延迟队列
RabbitMQ本身没有延迟队列的支持,但是基于其本身的一些特性,可以做到类似延迟队列的效果:基于死信交换器+TTL。以下介绍下相关概念及方法Dead Letter Exchanges消息在队列满足达到一定的条件,会被认为是死信消息(dead-lettered),这时候,RabbitMQ会重新把这类消息发到另外一个的exchange,这个exchange称为Dead Letter Exchanges.以下任一条件满足,即可认为是死信: 消息被拒绝消费(basic.reject or b原创 2021-07-29 00:42:45 · 230 阅读 · 0 评论 -
微服务调用超时处理
在开发过程中,应用程序通常会和其他的应用进行交互,应用系统之间的交互往往离不开网络通信。然而,网络环境是不稳定的,网络超时是我们需要考虑的问题。交互模式 同步 同步调用 同步调用接口返回两种状态,这两种状态都是终态,成功S或者失败F。同步调用会阻塞等待返回结果,如果长时间没有结果返回则会等待超时。 异步 异步调用 异步调用会返回两次结果,一次是同步返回一次异步返回。同步返回告知调用方请求已经受理,异步返回告诉调用方请求成功或失败。 ...原创 2021-07-20 15:00:28 · 4821 阅读 · 2 评论 -
RabbitMQ 延迟队列实现定时任务
场景开发中经常需要用到定时任务,对于商城来说,定时任务尤其多,比如优惠券定时过期、订单定时关闭、微信支付2小时未支付关闭订单等等,都需要用到定时任务,但是定时任务本身有一个问题。一般来说我们都是通过定时轮询查询数据库来判断是否有任务需要执行,也就是说不管怎么样,我们需要先查询数据库,而且有些任务对时间准确要求比较高的,需要每秒查询一次,对于系统小倒是无所谓,如果系统本身就大而且数据也多的情况下,这就不大现实了,所以需要其他方式的,当然实现的方式有多种多样的,比如Redis实现定时队列、基于优先级队列原创 2021-07-19 15:07:06 · 330 阅读 · 0 评论