zoukankan      html  css  js  c++  java
  • RabbitMQ在window的搭建

    RabbitMq window 搭建设置过程,网上有些说的不太明白,所以亲自操刀测试过程,参考了很多人的资料,多谢各位大神的宝贵资料
    第一步:装RabbitMq运行环境,类似一个虚拟机的东东
    1.otp_win32_19.0.exe 下载地址:https://www.erlang.org/ 分32位和64位根据个人系统安装不同的,这地址是国外的,貌似的翻墙 (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 abbitmq_server-3.2.3sbin------
    然后在横杠后面写命令
    如激活管理界面 拿这个替换横杠即可 : rabbitmq-plugins.bat enable rabbitmq_management

    要重启服务才能生效,可以执行

    net stop RabbitMQ && net start RabbitMQ

    第二步:我们使用rabbitmqctl控制台命令创建用户和密码,设置权限等等操作
    1.查看rabbitmq的用户列表,可以看到只有一个guest 权限是administrator
    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.bat list_users
    Listing users ...
    guest [administrator]
    ...done.

    2.添加用户
    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.bat add_user guan 1230
    Creating user "guan" ...
    ...done.
    查看用户,已经添加进来,权限为空
    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.bat list_users
    Listing users ...
    guan []
    guest [administrator]
    ...done.
    然后为刚才添加的用户设置权限
    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.bat set_user_tags guan administrator
    Setting tags for user "guan" to [administrator] ...
    ...done.

    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>rabbitmqctl.bat set_permissions -p / guan ".*" ".*" ".*"
    Setting permissions for user "guan" in vhost "/" ...
    ...done.

    查看刚才添加设置的用户,guan 这个用户已经设置了权限 administrator
    c:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin>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下面部署,以后再说吧,还有集群的,暂时用不到,各位参考网上其它资料吧,写这个不为别的,只是为了下次自己记得如何配置,也方便一些入门想学习的参考吧,

  • 相关阅读:
    SQLite数据库框架ORMLite与GreenDao的简单比较
    Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
    admin嵌套在spring mvc项目里,菜单栏点击新连接每次都会重置
    Spring MVC视图层:thymeleaf vs. JSP
    使用Spring标签库
    SpringMVC中Controller跳转到另一个Controller方法
    有趣iOS开展
    Java日期的格式String类型GMT,GST换算成日期Date种类
    javascript之Style物
    Tair LDB基于Prefixkey中期范围内查找性能优化项目总结
  • 原文地址:https://www.cnblogs.com/gylspx/p/5765841.html
Copyright © 2011-2022 走看看