zoukankan      html  css  js  c++  java
  • RabbitMQ安装&简单使用

    、什么是RabbitMQ。详见 http://www.rabbitmq.com/

        作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作,放入队列,再由另外一个线程,去异步处理这些队列,可极大的提高系统的并发能力。

    2、安装

        RabbitMQ服务:http://www.rabbitmq.com/download.html
        (安装完RabbitMQ服务后,会在Windows服务中看到。如果没有Erlang运行环境,在安装过程中会提醒先安装Erlang环境。http://www.erlang.org/downloads)

        .net客户端类库:http://www.rabbitmq.com/dotnet.html

    3、插件

         RabbitMQ提供了很多好用的插件,最常用的就是web管理工具,启动此插件。

         CMD中运行命令:rabbitmq-plugins enable rabbitmq_management

         注:rabbitmq-plugins 所在路径为:D:Program FilesRabbitMQ Server abbitmq_server-3.4.0sbin

         web管理工具的地址是:http://localhost:15672,初始用户名:guest 初始密码:guest

    4、配置

        配置文件地址为:C:Documents and SettingsAdministratorApplication DataRabbitMQ abbitmq.config,默认没有rabbit.config文件,需要手工新建(默认会有rabbitmq.config.example 作为参考)。基于安全,做了两个配置,如下:

        

    复制代码
    [
    {rabbit,
    [
    {loopback_users, [<<"guest">>]},
    {tcp_listeners, [{"127.0.0.1", 1234},
    {"10.121.1.48", 8009}]}
    
    ]}
    ].
    复制代码

    loopback_users:设置只能在与RabbitMq服务同一台机器上访问服务的用户。

    tcp_listeners:设置RabbitMQ监听的IP地址与端口。只监听局域网内网iP、修改默认端口,防止被入侵攻击。

    设置完后,别忘记了以下操作,否则配置不起作用。

    • 停止RabbitMQ服务;
    • 重新安装服务使配置生效:rabbitmq-service.bat install

            此命令要切换到路径:D:Program FilesRabbitMQ Server abbitmq_server-3.4.0sbin

    • 启动RabbitMQ服务;

    原文出处:http://www.cnblogs.com/qy1141/p/4054135.html

    ———————————————————————————————————————————————————————————————————————

    .NET 环境中使用RabbitMQ

    在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对系统压力比较大。

    面对这些问题,我们一般会将这些请求,放在消息队列中处理;异构系统之间使用消息进行通讯。消息传递相较文件传递与远程过程调用(RPC)而言,似乎更胜一筹,因为它具有更好的平台无关性,并能够很好地支持并发与异步调用。所以如果系统中出现了如下情况:

    • 对操作的实时性要求不高,而需要执行的任务极为耗时;
    • 存在异构系统间的整合;

    一般的可以考虑引入消息队列。对于第一种情况,常常会选择消息队列来处理执行时间较长的任务。引入的消息队列就成了消息处理的缓冲区。消息队列引入的异步通信机制,使得发送方和接收方都不用等待对方返回成功消息,就可以继续执行下面的代码,从而提高了数据处理的能力。尤其是当访问量和数据流量较大的情况下,就可以结合消息队列与后台任务,通过避开高峰期对大数据进行处理,就可以有效降低数据库处理数据的负荷。

    在前面的一篇讲解CQRS模式的文章中,所有的对系统的状态的更改都是通过事件来完成,一般的将事件存储到消息队列中,然后进行统一的处理。

    本文简单介绍在RabbitMQ这一消息代理工具,以及在.NET中如何使用RabbitMQ.

    一 环境搭建

    首先,由于RabbitMQ使用Erlang编写的,需要运行在Erlang运行时环境上,所以在安装RabbitMQ Server之前需要安装Erlang 运行时环境,可以到Erlang官网下载对应平台的安装文件。如果没有安装运行时环境,安装RabbitMQ Server的时候,会提示需要先安装Erlang环境。 安装完成之后,确保已经将Erlang的安装路径注册到系统的环境变量中。安装完Erlang之后,这个环境会自动设置,如果没有,在administrator环境下在控制台下面输入,也可以设置:

    Setx  ERLANG_HOME “D:Program Files (x86)erl6.3″

    Erlang Enviroment Path

    然后,去RabbitMQ官网下载RabbitMQ Server服务端程序,选择合适的平台版本下载。安装完成之后,就可以开始使用了。

    现在就可以对RabbitMQ Server进行配置了。

    首先,切换到RabbitMQ Server的安装目录:

    RabbitMQ Install folder

    在sbin下面有很多batch文件,用来控制RabbitMQ Server,当然您也可以直接在安装开始菜单中来执行相应的操作:

    RabitMQ Menu

    最简单的方式是使RabbitMQ以Windows Service的方式在后台运行,所以我们需要以管理员权限打开cmd,然后切换到sbin目录下,执行这三条命令即可:

    rabbitmq-service install
    rabbitmq-service enable
    rabbitmq-service start

    Start RabbitMQ Service

    现在RabbitMQ的服务端已经启动起来了。

    下面可以使用sbin目录下面的rabbitmqctl.bat这个脚本来查看和控制服务端状态的,在cmd中直接运行rabbitmqctl status。如果看到以下结果:

    Unable to connect node

    显示node没有连接上,需要到C:Windows目录下,将.erlang.cookie文件,拷贝到用户目录下 C:Users{用户名},这是Erlang的Cookie文件,允许与Erlang进行交互,现在重复运行刚才的命令就会得到如下信息:

    rabbit mq status

    RabbitMQ Server上面也有用户概念,安装好之后,使用rabbitmqctl list_users命令,可以看到上面目前的用户:

    RabbitMQ users

    可以看到,现在只有一个角色为administrator的名为guest的用户,这个是RabbitMQ默认为我们创建的,他有RabbitMQ的所有权限,一般的,我们需要新建一个我们自己的用户,设置密码,并授予权限,并将其设置为管理员,可以使用下面的命令来执行这一操作:

    rabbitmqctl  add_user  yy  hello!
    rabbitmqctl  set_permissions  yy  ".*"  ".*"  ".*"
    rabbitmqctl  set_user_tags yy administrator

    Create RabbitMQ user

    上面的一条命令添加了一个名为yy的用户,并设置了密码hello!,下面的命令为用户yy分别授予对所有消息队列的配置、读和写的权限。

    现在我们可以将默认的guest用户删掉,使用下面的命令即可:

    rabbitmqctl delete_user guest

    如果要修改密码,可以使用下面的命令:

    rabbitmqctl change_password {username}  {newpassowrd}

    原文:http://www.cnblogs.com/yangecnu/p/Introduce-RabbitMQ.html

  • 相关阅读:
    Spring Boot 入门
    门罗币(MONERO)钱包生成教程
    数据库 一对多,多对多 表设计
    使用nginx+lua脚本读写redis缓存
    在Spring MVC中使用注解的方式校验RequestParams
    MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》
    Mycat分表分库
    Go在Ubuntu 14.04 64位上的安装过程
    Android获取设备屏幕宽高像素值的两个方法
    php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法
  • 原文地址:https://www.cnblogs.com/JustinLau/p/10511232.html
Copyright © 2011-2022 走看看