RabbitMq window 搭建设置过程,网上有些说的不太明白,所以亲自操刀测试过程,参考了很多人的资料,多谢各位大神的宝贵资料
第一步:装RabbitMq运行环境,类似一个虚拟机的东东
1.otp_win32_19.0.exe 下载地址:https://www.erlang.org/ 分32位和64位根据个人系统安装不同的,这地址是国外的,貌似的FQ (forwindows)
2.rabbitmq-server-3.2.3.exe 下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.3/rabbitmq-server-3.2.3.exe(Rabbit MQ Server Windows Installer)
这里装完一定要去自己电脑:开始->控制面板->系统->高级系统设置->设置环境变量
一定是系统变量,添加变量名:ERLANG_HOME 变量值:C:\Program Files (x86)\erl8.0 ---------说明,此路径为你安装的ErLang这个东西的安装地方默认是C盘
不然会走弯路,我当时不是添加到系统变量,我靠,搞死我两天,查了很多资料也没说明白的
默认安装的Rabbit MQ 监听端口是5672
使用Rabbit MQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态,
首先你可以在命令行中使用下面的命令激活:
不要自己cmd自己cp菜单目录去找哈,安装完上面的2,会有如下截图,点开它自动打开
C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin\------
然后在横杠后面写命令
如激活管理界面 拿这个替换横杠即可 : rabbitmq-plugins.bat enable rabbitmq_management
要重启服务才能生效,可以执行
net stop RabbitMQ && net start RabbitMQ
第二步:我们使用rabbitmqctl控制台命令创建用户和密码,设置权限等等操作
1.查看rabbitmq的用户列表,可以看到只有一个guest 权限是administrator
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat list_users
Listing users ...
guest [administrator]
...done.
2.添加用户
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat add_user guan 1230
Creating user "guan" ...
...done.
查看用户,已经添加进来,权限为空
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat list_users
Listing users ...
guan []
guest [administrator]
...done.
然后为刚才添加的用户设置权限
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat set_user_tags guan administrator
Setting tags for user "guan" to [administrator] ...
...done.
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat set_permissions -p / guan ".*" ".*" ".*"
Setting permissions for user "guan" in vhost "/" ...
...done.
查看刚才添加设置的用户,guan 这个用户已经设置了权限 administrator
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.2.3\sbin>rabbitmqctl.bat list_users
Listing users ...
guan [administrator]
guest [administrator]
...done.
第三步:使用浏览器打开http://localhost:15672 访问Rabbit Mq的管理控制台,使用刚才创建的账号登陆系统:如图管理界面
第四步:代码发送消息 模拟发送十条消息进入rabbitMq,控制台,引用RabbitMQ.Client.dll
static void Main(string[] args) { var factory = new ConnectionFactory(); factory.HostName = "localhost"; factory.UserName = "guan"; factory.Password = "zj1230"; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare("hello", false, false, false, null); for (int i = 0; i < 10; i++) { string message = "Hello World"+i; var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish("", "hello", null, body); Console.WriteLine(" set {0}", message); } } } Console.ReadLine(); }
这里讲一下我遇到的问题,不是代码的问题,是引用的问题,一定注意版本,RabbitMQ.Client.dll的版本最新net4.5,如果你用的vs210
只装了.net4.0那他一直会连接不成功,提示什么Address.IPV6错误,所以注意版本和你的vs对应哦
发送完毕,既可以访问http://localhost:15672,只管看到队列有10消息,
第五步:那就是接受端,也用一个控制台,接受
static void Main(string[] args) { var factory = new ConnectionFactory(); factory.HostName = "localhost"; factory.UserName = "guan"; factory.Password = "zj1230"; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare("hello", false, false, false, null); var consumer = new QueueingBasicConsumer(channel); channel.BasicConsume("hello", true, consumer); Console.WriteLine(" waiting for message."); while (true) { var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); var body = ea.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine("Received {0}", message); } } }
你在控制台上就可以看到刚才发送的10条消息数据
再去访问http://localhost:15672,去看队列消息,已经显示为0
至于linnux下面部署,以后再说吧,还有集群的,暂时用不到,各位参考网上其它资料吧,写这个不为别的,只是为了下次自己记得如何配置,也方便一些入门想学习的参考吧,