![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
文章平均质量分 87
农夫渔民
漫漫修行路
展开
-
RabbitMQ 之一"Hello World"
一、RabbitMQ介绍RabbitMQ是一个消息中介,它接收消息并转发,可以想象RabbitMQ为一个邮箱/信箱,当你将你需要寄出去的信件放进邮箱,可以确定的是邮差最终会将信件交付给信件的接收者,以此类推,RabbitMQ就是一个邮箱、一个邮局、一个邮差。当然,RabbitMQ和邮局最大的差别就是RabbitMQ不是处理纸张信息,而是保存和转发二进制的数据信息。RabbitMQ中原创 2017-12-01 14:53:43 · 178 阅读 · 0 评论 -
RabbitMQ 之二 "Work Queues"
在上一篇RabbitMQ HelloWorld中,我们写了一个程序关于向一个queue 发送消息和从同一个queue中取出消息,这篇文章,我们将创建一个 Work Queue用来向多个worker分发耗时的tasks。关于Work Queues的主要目的是为了避免立即执行资源密集型任务,并且必须等待它完成,相反,我们可以安排任务在稍后执行。我们将一个task压缩为message,并且发送给qu原创 2017-12-01 17:04:54 · 253 阅读 · 0 评论 -
RabbitMQ之三 Publish/Subscribe
在上篇文章Work Quene中我们创建了一个Work Queue,在Work Queue中的没有给task会准备的分发给worker,这边文章中,我们需要将一个消息分发给多个consumers,这个模式称为发布订阅 "publish/subscribe"为了举例说明发布订阅模式,我们构建一个简单的日志系统,包含两部分,一部分用于发布日志,另一部分用于接收并打印日志。在我们的日志系统中,发原创 2017-12-01 19:03:39 · 178 阅读 · 0 评论 -
RabbitMQ之四 Routinig
在上篇文章Publish/Subscribe中我们构建了一个简单的日志系统,可以将日志消息广播给多个消费者。这这篇文章中我们需要添加一个功能,使得日志消费者可以订阅日志的部分消息,比如我们需要将error的日志消息记录到日志文件中,同时将所有的日志通过控制台打印出来。所谓的绑定(binding)就是一个queue与exchange之间的一种联系,即这个queue对特定exchange中的消原创 2017-12-03 20:44:39 · 186 阅读 · 0 评论 -
RabbitMQ 之五 Topics
在上篇文章Routing中,我们改进了日志系统,使用类型为direct的exchange,使得可以有选择性的接收日志。而不是fanout那样只是简单的广播信息。虽然使用了direct的exchange来改进我们的日志系统,但是还是有局限性,无法根据多重条件来进行路由选择。在我们的日志系统中,我们希望不仅仅根据日志的级别,而且根据日志的来源来订阅日志。类似于syslog这个unix工具,它根翻译 2017-12-06 11:23:03 · 188 阅读 · 0 评论 -
RabbitMQ 之六 RPC
在RabbitMQ系列的第二篇文章Work Queus中,我们学会将耗时的task分布到多个workers。那如果我们需要在一台远程电脑上执行一个函数然后等待获取结果?这种模式叫做Remote Procedure Call或者RPC。即远程程序调用。这篇文章中我们将构建一个RPC系统:一个客户端和一个可伸缩的RPC服务器,我们将会构建一个返回计算斐波纳契结果的远程服务来模拟需要分布式的耗时翻译 2017-12-06 14:34:23 · 217 阅读 · 0 评论 -
RabbitMQ 之七 TTL与Dead lettering
RabbitMq允许我们为message和queue设置过期时间TTL (time to live) ,可以通过代码或者控制台设置TTL,可以为一个或者多个queue设置TTL,或者为每个独立的message设置TTL。设置x消息TTL的两种方式一、为队列中的每个消息设置TTL在声明队列的时候通过如下代码设置:Map args = new HashMap();args.put原创 2017-12-15 16:49:56 · 373 阅读 · 0 评论 -
RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知
在第三方支付中,例如支付宝、或者微信,对于订单请求,第三方支付系统采用的是消息同步返回、异步通知+主动补偿查询的补偿机制。由于互联网通信的不可靠性,例如双方网络、服务器、应用等因素的影响,不管是同步返回、异步通知、主动查询报文都可能出现超时无响应、报文丢失等情况,所以像支付业务,对结果的通知一般采用几种方案结合的补偿机制,不能完全依赖某一种机制。例如一个支付结果的通知,一方面会在支原创 2017-12-18 16:56:59 · 8431 阅读 · 6 评论