RabbitMQ介绍

  RabbitMQ是一个由 Erlang (一种通用的面向并发的编程语言)开发的AMQP(Advanced Message Queue )的开源实现,Rabbit MQ 是建立在Erlang OTP平台上。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。

RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。其实VMWare,Pivotal和EMC本质上是一家的。不同的是VMWare是独立上市子公司,而Pivotal是整合了EMC的某些资源,现在并没有上市。

应用场景

  言归正传。RabbitMQ,或者说AMQP解决了什么问题,或者说它的应用场景是什么?

对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统或者(subsystem or Component or submodule)。那么这些模块的如何通信?这和传统的IPC有很大的区别。传统的IPC很多都是在单一系统上的,模块耦合性很大,不适合扩展(Scalability);如果使用socket那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如:

1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何方式丢失?

2)如何降低发送者和接收者的耦合度?

3)如何让Priority高的接收者先接到数据?

4)如何做到load balance?有效均衡接收者的负载?

5)如何有效的将数据发送到相关的接收者?也就是说将接收者subscribe 不同的数据,如何做有效的filter。

6)如何做到可扩展,甚至将这个通信模块发到cluster上?

7)如何保证接收者接收到了完整,正确的数据?

AMQP协议解决了以上的问题,而RabbitMQ实现了AMQP。

安装Erlang 

所以在安装rabbitMQ之前,需要先安装Erlang 。可以去官网下载。全部点击“下一步”就行。安装后路径:C:\Program Files\erl10.0.1

设置环境变量ERLANG_HOME= C:\Program Files\erlx.x.x 
      添加到PATH  %ERLANG_HOME%\bin;

安装RabbitMQ

可以去官网下载。依旧可以不改变默认进行安装。C:\Program
Files\RabbitMQ Server\rabbitmq_server-3.7.7

需要注意:默认安装的RabbitMQ 监听端口是5672

设置环境变量RABBITMQ_SERVER=C:\Program
Files\rabbitmq_server-x.x.x。
      添加到PATH %RABBITMQ_SERVER%\sbin;

4369 – erlang发现口

5672 –client端通信口

15672 – 管理界面ui端口

25672 – server间内部通信口

如果用其它协议,还有其它口,点击查看文档说明

安装好之后的目录结构为:C:\Program
Files\RabbitMQ Server\rabbitmq_server-3.7.7

其中“sbin”下放置的是常用指令:

常用指令:
rabbitmq-plugins
enable rabbitmq_management
 开启插件
rabbitmq-service
remove
 移除服务
rabbitmq-service
install
 安装服务
rabbitmq-service
start
 或者 net start rabbitmq 启动服务
rabbitmq-service
stop
 或者 net stop rabbitmq 停止服务
rabbitmqctl
status
 查看服务状态
rabbitmq-server
restart
 重启服务

配置

激活 RabbitMQ's
Management Plugin

使用RabbitMQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态。

打开命令窗口,输入命令:

"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq_management

这样,就安装好插件了,是不是能使用了呢?别急,需要重启服务才行。

【在 运行 services.msc中可以重启】

创建用户,密码,绑定角色

使用rabbitmqctl控制台命令(位于C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin>)来创建用户,密码,绑定权限等。

注意:安装路径不同的请看仔细啊。

rabbitmq的用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。

查看已有用户及用户的角色:rabbitmqctl.bat list_users

(需要添加了 环境变量)

新增一个用户:rabbitmqctl.bat add_user username password

此时来看下我们当前用户:

eric 后面没有“[administrator]”

这个administrator是干嘛用的呢?这就涉及到用户角色问题了:

按照我个人理解,rabbitmq用户角色可分为五类:

超级管理员(administrator), 监控者(monitoring), 策略制定者(policymaker), 普通管理者(management)以及其他。

我们也给 eric 变成 “超级管理员” 角色:

rabbitmqctl.bat set_user_tags username administrator

再看下结果。

现在总觉得guest 这个不安全(它的默认密码是guest),想更改密码,好办:rabbitmqctl change_password userName newPassword

有的人也许会说,我就是看guest不爽,老子新增了administrator用户了,就是想干掉它,可以:rabbitmqctl.bat delete_user username

管理界面

使用浏览器打开http://localhost:15672访问Rabbit Mq的管理控制台,使用刚才创建的账号登陆系统。

除了可查看所有的信息 ,上面的命令 增删改查、权限设置,都可以在这个页面完成,还可以依据业务需求设置策略(policy)。

创建Virtual Hosts

设置不同角色对于虚拟路径的权限,这样可以让不同的角色管理不同的虚拟路径,并且有相应权限:

添加Virtual Hosts(可以理解成一个数据库,类似于mysql、oracle之类的)

添加成功后,点击Name“/jack”设置权限:



回到“Users”选项下,可以看到jack的权限:

以上就是RabbitMQ的安装和初始化操作。

参考:RabbitMQ原理与相关操作

RabbitMQ介绍及windows下安装使用的更多相关文章

  1. TcMalloc的介绍以及Windows下安装使用

    本文由博主(SunboyL)原创,转载请注明出处:http://www.cnblogs.com/xsln/p/Introduction_TcMalloc.html 介绍: TcMalloc(Threa ...

  2. RabbitMQ学习在windows下安装配置

    RabbitMQ学习一. 在windows下安装配置 1.下载并安装erlang,http://www.erlang.org/download.html,最新版是R15B01(5.9.1).由于我机器 ...

  3. MongoDB介绍与windows下安装

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类 似json的bjson格式,因此可以存储比较复杂的数据类型. ...

  4. Spark简单介绍,Windows下安装Scala+Hadoop+Spark运行环境,集成到IDEA中

    一.前言 近几年大数据是异常的火爆,今天小编以java开发的身份来会会大数据,提高一下自己的层面! 大数据技术也是有很多: Hadoop Spark Flink 小编也只知道这些了,由于Hadoop, ...

  5. Egret Engine(白鹭引擎)介绍及windows下安装

    Egret Engine简要介绍----- Egret Engine(白鹭引擎)[Egret Engine官网:http://www.egret-labs.org/]是一款使用TypeScript语言 ...

  6. MongoDB笔记(一):MongoDB介绍及Windows下安装

    一.前言 MongoDB火了也蛮久了,关于简介看看这里吧.项目中一直没用上,最近闲的慌就自己学了下,顺便记录下以便今后复习. 本系列是基于MongoDB 2.4.8 windows 64位讲解,后面的 ...

  7. MongoDB 介绍及Windows下安装

    一.MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++ ...

  8. RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ

    摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...

  9. Windows下安装RabbitMQ

    今天正好给自己机器安装rabbitmq,总结下安装经验. 现在国内访问erlang,和 RabbitMQ 官网好像都很难连上.我已下载好了资源,需要的朋友可以下载. 链接: https://pan.b ...

随机推荐

  1. C++(二十九) — new 和 delete

    1.基本用法,定义变量.数组.对象 class test { public: test(int a_, int b_) { a = a_; b = b_; cout << "构造 ...

  2. Elasticsearch知识整理

    1:es介绍          Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎.设计用于云计算中,          能够达到实时搜索,稳定,可靠,快速,安装使用方便.基 ...

  3. Lua学习笔记1,基本数据类型

    1.字符串的连接使用的是  .. ,如 print(123 .. 44) 输出 12344 print ('a' .. 'b') 输出 ab print(123 .. 44)这句的时候 .. 两边要空 ...

  4. Java 连接操作 Redis 出现错误

    Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.n ...

  5. php7.2版本+yii2会报错

    FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot use 'Object' as class name as it ...

  6. python:小乌龟turtle

    turtle的意思是乌龟,也是python中自带的图形函数,使用turtle的方法也很形象,就好像在画布上有一个小乌龟(在画布上是一个箭头),然后你可以让它动来动去,它经过的地方就被留下了记号. 例如 ...

  7. 【zznu-夏季队内积分赛3-I】逛超市

    题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“我宝儿姐背包学的太差了,你们谁能帮我解决这道题,我就让他做我的男朋友!宝儿姐现在在逛超市,超市里的种类实在是太多了,每种都有很多很 ...

  8. bzoj3600

    题解: 好像是什么替罪羊树 然后看了几个题解 然后就抄了一边 代码: #include<bits/stdc++.h> using namespace std; ; int n,m,rt,R ...

  9. *SCM-MANAGERtomcat寄宿使用

    采用的部署方式 TomCat 一个端口下部署多个 Application供不同部门使用 初始部署详参见 SCM-MANAGER 博文 日常使用添加部门操作步骤 从“D:\tomcat\webapps” ...

  10. LeetCode OJ:Min Stack(最小栈问题)

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. pu ...