首页 > 代码库 > 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;

目前就这么多,如果谁用更好的方法请告知我,谢谢!