[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);

 

了解詳情,還是去官網:
 
 
 
最后小圖一張 關於如何思考 如何解決問題 如何傾聽:
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM