RabbitMQ介绍及windows下安装使用
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介绍及windows下安装使用的更多相关文章
- TcMalloc的介绍以及Windows下安装使用
本文由博主(SunboyL)原创,转载请注明出处:http://www.cnblogs.com/xsln/p/Introduction_TcMalloc.html 介绍: TcMalloc(Threa ...
- RabbitMQ学习在windows下安装配置
RabbitMQ学习一. 在windows下安装配置 1.下载并安装erlang,http://www.erlang.org/download.html,最新版是R15B01(5.9.1).由于我机器 ...
- MongoDB介绍与windows下安装
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类 似json的bjson格式,因此可以存储比较复杂的数据类型. ...
- Spark简单介绍,Windows下安装Scala+Hadoop+Spark运行环境,集成到IDEA中
一.前言 近几年大数据是异常的火爆,今天小编以java开发的身份来会会大数据,提高一下自己的层面! 大数据技术也是有很多: Hadoop Spark Flink 小编也只知道这些了,由于Hadoop, ...
- Egret Engine(白鹭引擎)介绍及windows下安装
Egret Engine简要介绍----- Egret Engine(白鹭引擎)[Egret Engine官网:http://www.egret-labs.org/]是一款使用TypeScript语言 ...
- MongoDB笔记(一):MongoDB介绍及Windows下安装
一.前言 MongoDB火了也蛮久了,关于简介看看这里吧.项目中一直没用上,最近闲的慌就自己学了下,顺便记录下以便今后复习. 本系列是基于MongoDB 2.4.8 windows 64位讲解,后面的 ...
- MongoDB 介绍及Windows下安装
一.MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++ ...
- RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ
摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...
- Windows下安装RabbitMQ
今天正好给自己机器安装rabbitmq,总结下安装经验. 现在国内访问erlang,和 RabbitMQ 官网好像都很难连上.我已下载好了资源,需要的朋友可以下载. 链接: https://pan.b ...
随机推荐
- Request库使用response.text返回乱码问题
我们日常使用Request库获取response.text,这种调用方式返回的text通常会有乱码显示: import requests res = requests.get("https: ...
- TestNG入门--安装和基本介绍
TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了. Tes ...
- 设计模式--单例模式C++实现
单例模式C++实现 1描述: 单例模式,又称单件模式. 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 2具体类图描述: 2.1 StartUML内部生成模式类图 该类图由S ...
- 24.Java中atomic包中的原子操作类总结
1. 原子操作类介绍 在并发编程中很容易出现并发安全的问题,有一个很简单的例子就是多线程更新变量i=1,比如多个线程执行i++操作,就有可能获取不到正确的值,而这个问题,最常用的方法是通过Synchr ...
- hdu 4679 Terrorist’s destroy 树的直径+dp
题意:给你一棵树,每条边都有值W,然后问你去掉一条边,令val = w*max(两颗新树的直径),求val最小值~ 做法,先求树的直径,然后算出直径上每个点的最长枝条长度.这样对于每一条边,假如是枝条 ...
- List根据某个字段(属性)去重
有时候自带的list.Distinct()去重并不能满足魔门的要求,比如以下情况 如果testList的Name相同则视为重复,则可以如下实现,比写循环语句简洁多了 testList.Where((x ...
- 2018.11.12 RF debug
1 SG setting 2 Date 3 0-1 4 ASK 5 Power supply 6 SG - filter 7 NRF905- demodulation 8 RX test 9 ...
- 自己定义的Excetpion继承哪个异常有什么讲究?[待解答]
try catch的地方需要用到一个自定义的DBException,如下: 于是我就自定义了一个DBException,继承Excetpion,以父类Exception构造器创建构造器: DBExce ...
- Linux:history命令详解
Linux下History命令 主要用于显示历史指令记录内容, 下达历史纪录中的指令 . 语法 history [n] history [-c] history [-raw] histfiles ...
- MATROSKA 文件格式
MATROSKA 文件格式 1.EBML (Extensible Binary Meta Language): EBML语言使用不定长整数,这种方式相对于固定长度的32位/64位字长的整数值更节约空间 ...