RabbitMQ使用

1. 说明 

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

面对这些问题,咱们通常会将这些请求,放在消息队列MQ中处理;异构系统之间使用消息进行通信。node

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通讯方法。应用程序经过读写出入队列的消息(针对应用程序的数据)来通讯,而无需专用链接来连接它们。消息传递指的是程序之间经过在消息中发送数据进行通讯,而不是经过直接调用彼此来通讯,直接调用一般是用于诸如远程过程调用的技术。排队指的是应用程序经过 队列来通讯。队列的使用除去了接收和发送应用程序同时执行的要求。web

  MQ是消费-生产者模型的一个典型的表明,一端往消息队列中不断写入消息,而另外一端则能够读取或者订阅队列中的消息。数据库

   RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 性能优化

  消息传递相较文件传递与远程过程调用(RPC)而言,彷佛更胜一筹,由于它具备更好的平台无关性,并可以很好地支持并发与异步调用。因此若是系统中出现了以下状况:cookie

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

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

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

2. 搭建环境

  2.1 安装Erlang语言运行环境异步

  因为RabbitMQ使用Erlang语言编写,因此先安装Erlang语言运行环境。分布式

      2.2 安装otp_win64_19.3.exe  地址: https://pan.baidu.com/s/1WCFe9meAEtHPVpdF-c-8TQ

      2.3.设置环境变量

  手动编辑“path”加入路径  C:\Program Files\erl8.3\bin  

  

  2.4.检查Erlang是否安装成功

  打开 cmd ,输入 erl 后回车,若是看到以下的信息,代表安装成功。

  

  2.5 安装RabbitMQ服务端

  地址 https://pan.baidu.com/s/1bznEJfw1inJfExk6jiUG2A ·

  下载安装。

   如今RabbitMQ的服务端已经启动起来了。

  要查看和控制RabbitMQ服务端的状态,能够用rabbitmqctl这个脚本。

  好比查看状态:(进入RabbitMQ的安装目录)

rabbitmqctl status

  

  假如显示node没有链接上,须要到C:\Windows目录下,将.erlang.cookie文件,拷贝到用户目录下 C:\Users\{用户名},这是Erlang的Cookie文件,容许与Erlang进行交互。

   使用命令查看用户:

rabbitmqctl list_users

  RabbitMQ会为咱们建立默认的用户名guest和密码guest,guest默认拥有RabbitMQ的全部权限。

  通常的,咱们须要新建一个咱们本身的用户,设置密码,并授予权限,并将其设置为管理员,可使用下面的命令来执行这一操做:

rabbitmqctl  add_user  JC JayChou   //建立用户JC密码为JayChou
rabbitmqctl  set_permissions  JC ".*"  ".*"  ".*"    //赋予JC读写全部消息队列的权限
rabbitmqctl  set_user_tags JC administrator    //分配用户组

  修改JC密码为123:

rabbitmqctl change_password JC  123

  删除用户JC:

rabbitmqctl delete_user  JC

  也能够开启rabbitmq_management插件,在web界面查看和管理RabbitMQ服务

    在此我向你们推荐一个Java学习交流群。交流学习群号:874811168 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,一块儿学习,一块儿进步,目前受益良多。

rabbitmq-plugins enable rabbitmq_management

    出处:https://www.cnblogs.com/saodiseng2015/p/9745579.html

相关文章
相关标签/搜索