
RabbitMQ
azhegps
技术源于不断滴追求!
展开
-
RabbitMQ默认端口
4369 (epmd), 25672 (Erlang distribution)5672, 5671 (AMQP 0-9-1 without and with TLS)15672 (if management plugin is enabled)61613, 61614 (if STOMP is enabled)1883, 8883 (if MQTT is enabled)原创 2016-10-11 16:19:31 · 3251 阅读 · 0 评论 -
【参考】RabbitMQ使用场景练习:STOMP plugin
STOMP plugin Stomp是一个简单的消息文本协议(不重点介绍,没仔细研究过)。RabbitMQ中STOMP plugin的集成,实现了由浏览器通过WebSocket协议访问消息队列,SockJS作为后备(旧版的浏览器不支持WebSocket协议)启用stomp plugin命令代码rabbitmq-pluginsenablerabbitmq_web_s...转载 2016-12-22 15:33:59 · 7100 阅读 · 0 评论 -
RabbitMQ的管理与监控
开启management plugin功能1、management plugin默认安装未开启,需要执行以下命令: $ cd /usr/lib/rabbitmq/bin/ $ sudo rabbitmq-plugins enable rabbitmq_management 2、management plugin提供HTTP API来管理和监控RabbitMQ Server,具体...转载 2016-12-20 13:21:31 · 2103 阅读 · 2 评论 -
RabbitMQ使用场景练习:入门实例(一)
注意要点在生产消息和消费消息的时候,我们都习惯先queueDeclare一个队列,但是如果你先后执行下面这两行,会报错。channel.queueDeclare("test", true, false, false, null);channel.queueDeclare("test", false, false, false, null);因为你定义第二个队列的时候,队列名称不一样,...转载 2016-12-20 13:25:39 · 2222 阅读 · 1 评论 -
RabbitMQ使用场景练习:工作队列(二)
工作队列 工作队列的好处在于多个工作线程共享执行任务队列,使用round-robin的方式分发任务(简单的理解:依次把任务分配给工作进程,一次性分配1..n个任务,平均分配)。 注意要点工作线程的产生,在同一队列上声明多个Consumer:Java代码 channel.basicConsume(queue, false, consume转载 2016-12-20 13:26:02 · 571 阅读 · 0 评论 -
RabbitMQ的几种典型使用场景
RabbitMQ主页:https://www.rabbitmq.com/AMQPAMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:1.Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。2.Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual H转载 2017-05-04 11:02:47 · 671 阅读 · 0 评论 -
【参考】RabbitMQ使用总结:持久化
持久化 RabbitMQ的持久化是为了实现服务从异常状态恢复后恢复之前的状态。RabbitMQ发送消息涉及交换器(exchange)、队列(queue)、消息,因而持久化包括交换器的持久化、队列的持久化、消息文本的持久化。获取消息是从队列中获取的、交换器进行的转发,所以为了确保消息的最终持久化,一般交换器、队列、消息都要进行持久化。 刚开始做练习的时候,一直有两个疑问没想通?...转载 2016-12-22 15:33:40 · 3179 阅读 · 0 评论 -
【参考】RabbitMQ使用场景练习:Validated User ID、Length Limit(十二 )
Validated User ID发送消息时指定userid,只有是当前conn的用户名才可以发送出去消息(测试发现非当前conn用户名,队列没有也没有创建,可能因为是在同一个channel)。用于消费者consumer需要知道消息是从哪个用户发过来的情况Java代码packagecom.demo.mq.rabbitmq.example12; importjava....转载 2016-12-22 15:33:06 · 712 阅读 · 1 评论 -
【参考】RabbitMQ使用场景练习:消息确认机制(十一)
消息确认机制RabbitMQ提供了transaction、confirm两种消息确认机制。transaction即事务机制,手动提交和回滚;confirm机制提供了Confirmlistener和waitForConfirms两种方式。confirm机制效率明显会高于transaction机制,但后者的优势在于强一致性。如果没有特别的要求,建议使用conrim机制。1、从实验来看,消息的确认...转载 2016-12-22 15:32:38 · 9073 阅读 · 2 评论 -
RabbitMQ使用场景练习:发布/订阅(三)
发布/订阅 即实现单点发送消息,多点接收。使用fanout转发器,广播到所有它知道的队列上 注意要点fanout转发器中不需要routingKey,指定也无效 创建fanout转发器:Java代码 channel.exchangeDeclare("fanout_logs", "fanout"); channel.basic转载 2016-12-22 15:27:43 · 879 阅读 · 0 评论 -
RabbitMQ使用场景练习:路由选择Routing(四)
路由选择(Routing) Routing即按照某条路线把消息发送出去,所有这条路线上的队列都将接收到消息。 使用direct转发器,在转发器上使用同一routingkey绑定多个队列,根据routingkey发送消息,所有绑定的队列都将收到消息 注意要点direct转发器,把消息直接转发到绑定routingkey的队列:Java代码翻译 2016-12-22 15:28:09 · 567 阅读 · 0 评论 -
RabbitMQ使用场景练习:主题Topic(五)
主题转发器(Topic) Topic转发器的功效包含fanout、direct类型的转发器,其特殊的地方在于转发器与队列的绑定时routingkey可以使用通配符*、#,使用*就相当于fanout,不使用通配符就相当于direct,否则就是模糊匹配,匹配上的队列都可以收到消息 注意要点topic转发器:Java代码 channel.ex翻译 2016-12-22 15:28:31 · 799 阅读 · 0 评论 -
RabbitMQ使用场景练习:Headers(六)
Headers转发器 消息发送时可以在header中定义一些键值对,接收消息队列与headers转发器绑定时可以指定键值对,all、any两种方式(队列绑定转发器时指定的键值对与headers中存储的键值对匹配),匹配上即可接收到消息 注意要点headers转发器:Java代码 //声明headers转发器 channel.exc翻译 2016-12-22 15:30:10 · 1784 阅读 · 0 评论 -
RabbitMQ使用场景练习:RPC(七)
RPC,同步消息 RabbitMQ默认的consumer为异步监听,RPC应用需要实现consumer的同步,可以使用QueueingConsumer(继承与DefaultConsumer,定义了一个堵塞队列LinkedBlockingQueue)实现同步 实际上就是服务端、客户端各定义一个消息队列,相互发送消息,客户端发送消息后同步等待结果返回 注意要点转载 2016-12-22 15:30:37 · 2080 阅读 · 0 评论 -
RabbitMQ使用场景练习:延迟队列(八)
延时队列 在实际业务场景中可能会用到延时消息发送,例如支付场景,准时支付、超过未支付将执行不同的方案,其中超时未支付可以看做一个延时消息。 RabbitMQ本身不具有延时消息队列的功能,但是可以通过TTL(Time To Live)、DLX(Dead Letter Exchanges)特性实现。其原理给消息设置过期时间,在消息队列上为过期消息指定转发器,这样消息过期后会转转载 2016-12-22 15:31:18 · 4407 阅读 · 0 评论 -
RabbitMQ使用场景练习:监听器Listener(九)
监听器 RabbitMQ中监听器有ReturnListener、ConfirmListener、ShutdownListener,本练习中使用ReturnListener,在发布消息时设置mandatory等于true,监听消息是否有相匹配的队列,没有时ReturnListener将执行handleReturn方法,消息将返给发送者 设置mandatory=true,当路转载 2016-12-22 15:31:40 · 16120 阅读 · 2 评论 -
RabbitMQ使用场景练习:优先级队列(十)
优先级队列 只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效 RabbitMQ3.5以后已经集成了rabbitmq_priority_queue 引用http://www.rabbitmq.com/community-plugins.html验证方式:触发为及时消费场景,常用场景与Qos结合使用 1、可先发送消息,再进行消转载 2016-12-22 15:32:08 · 3810 阅读 · 0 评论 -
Window和Ubuntu下RabbitMQ安装图文教程
Windows:https://blog.youkuaiyun.com/newbie_907486852/article/details/79788471Ubuntu:https://blog.youkuaiyun.com/qq_22638399/article/details/81704372原创 2019-09-09 19:24:15 · 234 阅读 · 0 评论