Two stenography strokes, some breaking changes in rabbitmq 3.0.
Mirror queue policiesDo you still remember how to create an image queue before? In the new version of X-ha-policy [LINK], using this parameter will not report an error, but the image will no longer take effect. the alternative solution is to use policies. the reason for this change is: the status of the image queue cannot be determined during running. The new solution is to configure the image queue. it also supports runtime management, such:
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
[1] mirrored queue's new document http://www.rabbitmq.com./ha.html [2] method http://www.rabbitmq.com/parameters.html added by rabbitmqctl
New FederationThe Federation configuration has changed significantly. x-Federation exchange type no longer exists. The replacement scheme is to use a policy similar to mirrored queue. the reason for this change is that the application should not know about Federation and hide this information. you can use rabbitmq_federation to modify rabbitmq for Federation application migration. config complete
rabbitmq-plugins disable rabbitmq_federation
rabbitmq-plugins enable rabbitmq_old_federation
New ClusteringDo you still remember the axes of creating the rabbitmq cluster? The rabbitmqctl cluster command is changed to rabbitmqctl join_cluster. In addition, you do not have to call rabbitmqctl reset first. You do not have to enumerate all nodes. If multiple nodes are listed, the cluster will be composed of multiple nodes, whether it is a dick node or a ram node, you can use -- disc -- Ram to specify the cluster role. The default value is disc node. this is actually much clearer than the previous cluster construction method.
Frame_maxIn the new version, if the frame sent by the client is greater than the negotiated frame_max value, rabbitmq will directly disconnect the client. the cause is that the problematic client may send a very large frame, causing the server to run out of memory. the default value is KB. Link to the configuration file Description document
JSON-RPCThe management plugin listening port is changed to 15672. json_rpc listening port is changed to 15670. The reason for the modification is to avoid ephemeral port stomp plugin using port 61313.
Expiration PropertyTo support message granularity expiration control, you need to append the expiration time on the message property, fill in a string that can be parsed as an integer. Here is an example: http://www.rabbitmq.com/ttl.html#per-message-ttl
Map<String, Object> args = new HashMap<String, Object>();args.put("x-message-ttl", 60000);channel.queueDeclare("myqueue", false, false, false, args);
For more information, go to the official website: What's New in rabbitmq 3.0? Http://www.rabbitmq.com/blog/2012/11/20/whats-new-in-rabbitmq-3-0/Breaking things with rabbitmq 3.0 http://www.rabbitmq.com/blog/2012/11/19/breaking-things-with-rabbitmq-3-0/
The last small figure shows how to think about how to solve the problem and how to listen: