本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
RabbitMQ使用场景练习:Validated User ID、Length Limit(十二 )
Validated User ID
发送消息时指定userid,只有是当前conn的用户名才可以发送出去消息(测试发现非当前conn用户名,队列没有也没有创建,可能因为是在同一个channel)。用于消费者consumer需要知道消息是从哪个用户发过来的情况
package com.demo.mq.rabbitmq.example12;
import java.io.IOException;
...
RabbitMQ使用场景练习:消息确认机制(十一)
消息确认机制
RabbitMQ提供了transaction、confirm两种消息确认机制。transaction即事务机制,手动提交和回滚;confirm机制提供了Confirmlistener和waitForConfirms两种方式。confirm机制效率明显会高于transaction机制,但后者的优势在于强一致性。如果没有特别的要求,建议使用conrim机制。
1、从实验来看,消息的确认机 ...
rabbitmq添加用户失败
rabbitmq 添加用户时报如下错误
Error description: {could_not_start,rabbit, {notsup, [{crypto,sha256,1,[{file,"crypto.erl"},{line,857}]}, {rabbit_password,hash,2, ...
RabbitMQ使用场景练习:优先级队列(十)
优先级队列
只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效
RabbitMQ3.5以后已经集成了rabbitmq_priority_queue
引用http://www.rabbitmq.com/community-plugins.html
验证方式:触发为及时消费场景,常用场景与Qos结合使用
1、可先发送消息,再进行消费
2、开启手动应答、设置Qos。若为 ...
RabbitMQ使用场景练习:监听器Listener(九)
监听器
RabbitMQ中监听器有ReturnListener、ConfirmListener、ShutdownListener,本练习中使用ReturnListener,在发布消息时设置mandatory等于true,监听消息是否有相匹配的队列,没有时ReturnListener将执行handleReturn方法,消息将返给发送者
设置mandatory=true,当路由不到队 ...
RabbitMQ使用场景练习:RPC(七)
RPC,同步消息
RabbitMQ默认的consumer为异步监听,RPC应用需要实现consumer的同步,可以使用QueueingConsumer(继承与DefaultConsumer,定义了一个堵塞队列LinkedBlockingQueue)实现同步
实际上就是服务端、客户端各定义一个消息队列,相互发送消息,客户端发送消息后同步等待结果返回
注意要点
发送消息时指定回 ...
RabbitMQ使用场景练习:Headers(六)
Headers转发器
消息发送时可以在header中定义一些键值对,接收消息队列与headers转发器绑定时可以指定键值对,all、any两种方式(队列绑定转发器时指定的键值对与headers中存储的键值对匹配),匹配上即可接收到消息
注意要点
headers转发器://声明headers转发器
channel.exchangeDeclare("header_exchan ...
RabbitMQ使用场景练习:主题Topic(五)
主题转发器(Topic)
Topic转发器的功效包含fanout、direct类型的转发器,其特殊的地方在于转发器与队列的绑定时routingkey可以使用通配符*、#,使用*就相当于fanout,不使用通配符就相当于direct,否则就是模糊匹配,匹配上的队列都可以收到消息
注意要点
topic转发器:channel.exchangeDeclare("topic_logs ...
RabbitMQ使用场景练习:路由选择Routing(四)
路由选择(Routing)
Routing即按照某条路线把消息发送出去,所有这条路线上的队列都将接收到消息。
使用direct转发器,在转发器上使用同一routingkey绑定多个队列,根据routingkey发送消息,所有绑定的队列都将收到消息
注意要点
direct转发器,把消息直接转发到绑定routingkey的队列:channel.exchangeDeclare(& ...
RabbitMQ使用场景练习:发布/订阅(三)
发布/订阅
即实现单点发送消息,多点接收。使用fanout转发器,广播到所有它知道的队列上
注意要点
fanout转发器中不需要routingKey,指定也无效
创建fanout转发器:channel.exchangeDeclare("fanout_logs", "fanout");
channel.basicPublish("f ...
RabbitMQ使用场景练习:工作队列(二)
工作队列
工作队列的好处在于多个工作线程共享执行任务队列,使用round-robin的方式分发任务(简单的理解:依次把任务分配给工作进程,一次性分配1..n个任务,平均分配)。
注意要点
工作线程的产生,在同一队列上声明多个Consumer:channel.basicConsume(queue, false, consumer);
消息持久化://第二个参数durable设为true ...
RabbitMQ使用场景练习:入门实例(一)
注意要点
同一队列多次创建://此处声明队列为了防止接收者先运行,队列还不存在时创建队列(同一队列只会创建一次)
channel.queueDeclare(queue, false, false, false, null);
消息发送类
package com.demo.mq.rabbitmq.example01;
import java.io.IOException;
imp ...
RabbitMQ的管理与监控
开启management plugin功能
1、management plugin默认安装未开启,需要执行以下命令:
$ cd /usr/lib/rabbitmq/bin/
$ sudo rabbitmq-plugins enable rabbitmq_management
2、management plugin提供HTTP API来管理和监控RabbitMQ Server,具体包含如 ...
rabbitmq简介、安装及集成springboot
点击链接:http://mp.weixin.qq.com/s?__biz=MzIxMzY1NTM3Nw==&mid=2247483697&idx=1&sn=5df33ca85b9c643fc518a4418400b225&chksm=97b2cb0fa0c542198e236c315f8487a47d983e2a2d90752acfb0a681e89a7bb9c14e ...
rabbitmq 消息重新入队
basicRecover:是路由不成功的消息可以使用recovery重新发送到队列中。
basicReject:是接收端告诉服务器这个消息我拒绝接收,不处理,可以设置是否放回到队列中还是丢掉,而且只能一次拒绝一个消息,官网中有明确说明不能批量拒绝消息,为解决批量拒绝消息才有了basicNack。
basicNack:可以一次拒绝N条消息,客户端可以设置basicNack方法的mu ...