首页 > 代码库 > RabbitMq使用中的一些问题
RabbitMq使用中的一些问题
记录一下RabbitMq使用过程的问题及方案:
1.按照官方文档在机器上搭建了RabbitMq的环境与Server,如仍不能访问,有可能是公司将对应的端口封掉了。
2.如果RabbitMq的server部署在虚拟机上,链接不上的话,请检查host server的权限以及相应的端口。
3.关于rabbitMq web管理界面使用guest账号登陆不上的问题,是由于guest默认允许在lovalhost上使用,远程机器的话需要建立新用户,以及配置新权限:
rabbitmqctl add_user 用户名 密码
rabbitmqctl set_user_tags 用户名 administrator
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
因为新版本不允许guest从其他机器登陆。
4.清除web管理界面的好多无用的queue的方法我是用的是reset rabbitmq,重置之后之前的配置也就消失了,需要 重新建立:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
5.关于使queue持久的方法,官方文档可以满足大家的愿望。
6.由于例子中从queue中获取message的方法是通过while(true)的方式,当consumer监听queue的时候有可能产生长时间等待情况,我的是在监听之前获取队列中的message count,如果count>0说明有待接收的消息,否则退出。
7.获取queue中的message的方法找到的好多都是java,python,php客户端的,关于.net段的方法和java一样:
QueueDeclareOk result=channel.QueueDeclare(config.QueueName, true, false, false, null);
uint count=count = result.MessageCount;
目前就这么多,如果谁用更好的方法请告知我,谢谢!