RabbitMQ
文章平均质量分 65
Art&Code
艺术与代码相辅相成。
展开
-
RabbitMQ解决分布式事务
RabbitMQ解决分布式事务案例:经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯。RabbitMQ解决分布式事务原理: 采用最终一致性原理。需要保证以下三要素1、确认生产者一定要将数据投递到MQ服务器中(采用MQ消息确认机制)2、MQ消费者消息能够正确消费消息,采用手动ACK模式,使用不...原创 2019-01-18 22:21:00 · 1444 阅读 · 1 评论 -
关于RabbitMQ
关于RabbitMQRabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等...原创 2018-11-10 14:07:00 · 224 阅读 · 1 评论 -
RabbitMQ的队列形式
RabbitMQ的队列形式1.点对点(简单)的队列2.工作(公平性)队列模式3.发布订阅模式4.路由模式Routing5.通配符模式Topics原创 2018-11-10 14:27:00 · 111 阅读 · 0 评论 -
RabbitMQ点对点的原理和使用
RabbitMQ点对点的原理和使用1、点对点模式 一对一模式。 一个生产者投递消息给队列 只能允许有一个消费者进行消费 如果集群的话 会进行均摊消费 服务器配置不一样 均摊就不优了 长连接 不用三次握手之类的 提高传输效率 但是长连接占服务器带宽推: 消费者已经启动了,建立长连接,一旦生产者向队列投递消息会立马推送给消费者取: 生产者先...原创 2018-11-10 19:13:00 · 3480 阅读 · 0 评论 -
消息队列RabbitMQ应答模式(自动、手动)
消息队列RabbitMQ应答模式(自动、手动)为了确保消息不会丢失,RabbitMQ支持消息应答。消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了。RabbitMQ就可以删除它了。如果一个消费者挂掉却没有发送应答,RabbitMQ会理解为这个消息没有处理完全,然后交给另一个消费者去重新处理。这样,你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了。没有任何消息超时...原创 2018-11-10 20:53:00 · 15522 阅读 · 2 评论 -
RabbitMQ公平队列原理和使用
RabbitMQ公平队列原理和使用目前消息转发机制是平均分配,这样就会出现俩个消费者,奇数的任务很耗时,偶数的任何工作量很小,造成的原因就是近当消息到达队列进行转发消息。并不在乎有多少任务消费者并未传递一个应答给RabbitMQ。仅仅盲目转发所有的奇数给一个消费者,偶数给另一个消费者。为了解决这样的问题,我们可以使用basicQos方法,传递参数为prefetchCount= 1。这样告...原创 2018-11-10 22:22:00 · 494 阅读 · 0 评论 -
RabbitMQ发布订阅模式原理和实现(交换机)
RabbitMQ发布订阅模式原理和实现(交换机)这个可能是消息队列中最重要的队列了,其他的都是在它的基础上进行了扩展。功能实现:一个生产者发送消息,多个消费者获取消息(同样的消息),包括一个生产者,一个交换机,多个队列,多个消费者。思路解读(重点理解):(1)一个生产者,多个消费者(2)每一个消费者都有自己的一个队列(3)生产者没有直接发消息到队列中,而是发送到交换机(4)每个...原创 2018-11-11 20:42:00 · 3601 阅读 · 0 评论 -
RabbitMQ路由模式RoutingKey模式
RabbitMQ路由模式RoutingKey模式生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要制定路由key(key匹配就能接受消息,key不匹配就不能接受消息)例如:我们可以把路由key设置为insert ,那么消费者队列key指定包含insert才可以接收消息,消费者队列key定义为update或者delete就不能接收消息。很好的控制了更新,插入和删除的操...原创 2018-11-11 22:39:00 · 23236 阅读 · 0 评论 -
RabbitMQ之Topics通配符模式
RabbitMQ之Topics通配符模式说明:此模式实在路由key模式的基础上,使用了通配符来管理消费者接收消息。生产者P发送消息到交换机X,type=topic,交换机根据绑定队列的routing key的值进行通配符匹配;符号#:匹配一个或者多个词lazy.# 可以匹配lazy.irs或者lazy.irs.cor符号*:只能匹配一个词lazy.* 可以匹配lazy.irs或者lazy...原创 2018-11-11 23:43:00 · 1357 阅读 · 0 评论 -
RabbitMQ事务确认机制(生产者)
RabbitMQ事务确认机制(生产者)消息确认机制 生产者 消费者 消费者如何确保消息一定消费成功队列和消费者建立长连接,推送或者拉取形式。消费者通过自动应答或者手动应答,队列服务器等待应答结果,如果没有应答结果那么保留给下一个消费者。问题产生背景:生产者发送消息出去之后,不知道到底有没有发送到RabbitMQ服务器, 默认是不知道的。而且有的...原创 2018-11-12 10:22:00 · 373 阅读 · 0 评论 -
SpringBoot2.0之整合RabbitMQ
SpringBoot2.0之整合RabbitMQ案例:Springboot 对RabbitMQ的支持公共的pom:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati...原创 2018-11-12 13:51:00 · 469 阅读 · 0 评论 -
RabbitMQ死信队列
RabbitMQ死信队列关于RabbitMQ死信队列死信队列 听上去像 消息“死”了 其实也有点这个意思,死信队列是 当消息在一个队列 因为下列原因:消息被拒绝(basic.reject/ basic.nack)并且不再重新投递 requeue=false消息超期 (rabbitmq Time-To-Live -> messageProperties.setEx...原创 2019-01-18 16:17:00 · 310 阅读 · 0 评论 -
RabbitMQ安装
RabbitMQ安装一、安装Erlang1)安装erlang依赖的基本环境yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl openssl-devel xmlto zip unzip2)下载安装Erlang wget http://www.erlang.org/...原创 2018-11-10 13:05:00 · 233 阅读 · 0 评论