1.如果远程客户端网络状况不是太好,比如adsl什么的,那么一定在客户端打开requstedHeartbeat
2.如果在同一台机器上,千万不要打开requstedHeartbeat,即requstedHeartbeat=0
3.各个系统下配置文件的位置:
Windows - %APPDATA%\RabbitMQ\rabbitmq.config
Debian - /etc/rabbitmq/rabbitmq.config
RPM - /etc/rabbitmq/rabbitmq.config
MacOS (Macports) - /opt/local/etc/rabbitmq/rabbitmq.config
Generic UNIX - /etc/rabbitmq/rabbitmq.config
但是千万注意,不管你是设置了配置文件还是修改了环境变量RABBITMQ_*,至少windows下都必须从新安装服务才能生效,仅重启服务是没用的!话说这个问题非常奇怪啊,它是采取的服务参数的形式处理的而不是读取配置文件。
比如你在rabbitmq.config里面写了:
[{kernel,[{inet_dist_use_interface,{127,0,0,1}}]}].
那么重启服务没用,重装服务你才会发现这玩意监听在localhost了。
为了远程管理兔子MQ,可以打开management:
rabbitmq-plugins enable rabbitmq_management
但是由于用户权限配置问题,需要一点点的设置:
http://stackoverflow.com/questions/14699873/how-to-reset-user-for-rabbitmq-management
rabbitmqctl set_user_tags usrname administrator
这样才能登录!
官方demo里面RPC模式基本就是骗人的,这个模式带来的问题远比解决的问题多一百倍!
我的建议是不到万不得已,绝对不要阻塞请求来等待回复,这个模型太麻烦了,还是完全open的队列模式客户端自己取更合适。
调试程序的的时候,如果是异步队列,千万注意了,如果你收不到消息,很可能不是错误而是让别人的跑的应用收去了!所以这个地方一定控制一下只一个人取。