[Erlang 0093] RabbitMQ 3.0的一些变化

简介:

 

  速记两笔,RabbitMQ 3.0的一些 Breaking Change.
 
 
Mirror queue policies
 
   还记得之前是怎样创建镜像队列的么? x-ha-policy [Link]在新版本,使用这个参数不会报错但是已经镜像不会再生效.替换方案是使用policies.这样修改的动因是:无法在运行时状态判断哪些队列是镜像队列,新方案是把镜像队列也做到配置里面.同样支持运行时管理,比如:
 
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'

 

[1] Mirrored Queue 的新文档  http://www.rabbitmq.com./ha.html
[2] rabbitmqctl 新增的方法  http://www.rabbitmq.com/parameters.html
 
 
New federation
 
   federation配置有较大变化.x-federation exchange type不复存在,替换方案是使用类似Mirrored queue的policy.这样变更的理由是:应用程序不应该知道federation的事情,应该隐藏掉这部分信息.  对于已经使用federation的应用迁移可以使用rabbitmq_federation配合修改rabbitmq.config完成

 

rabbitmq-plugins disable rabbitmq_federation

 

rabbitmq-plugins enable rabbitmq_old_federation

 

 
New Clustering
 
   还记得创建RabbitMQ集群的那几板斧么?rabbitmqctl cluster命令修改为 rabbitmqctl join_cluster,而且不必先调用rabbitmqctl reset ,不必枚举所有的节点 如果列出多个节点,就会与多个节点组成集群,是dick node还是RAM node可以通过 --disc --ram指定集群角色,默认是disc node.这个真的比 以前的集群构建方式清晰多了.
 
 
frame_max
 
   新版本如果client发送的frame比协商的frame_max值大,Rabbitmq会直接断开该client的链接.这样做的原因是:有问题的client可能发送非常大的frame导致服务器内存耗尽.默认值是128kb, 配置文件说明文档链接
 
 
JSON-RPC
 
  management plugin侦听端口修改为15672.JSON_RPC侦听端口修改为15670.修改的动因是避开  ephemeral port 
  STOMP plugin依然使用61313端口.
 
expiration property
  
   要支持消息粒度的过期控制就需要在消息属性上附加过期时间,填写一个可以解析为整形的字符串.
 
 
Map<String, Object> args = new HashMap<String, Object>();
args.put("x-message-ttl", 60000);
channel.queueDeclare("myqueue", false, false, false, args);

 

了解详情,还是去官网:
 
 
 
最后小图一张 关于如何思考 如何解决问题 如何倾听:
 

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5月前
|
消息中间件
Rabbitmq与Erlang对应版本关系
Rabbitmq与Erlang对应版本关系
153 0
|
6月前
|
消息中间件 Shell
rabbitmq安装erlang环境后没生效
rabbitmq安装erlang环境后没生效
1014 7
|
存储 消息中间件 负载均衡
|
Web App开发 消息中间件 Apache