作者:markjiang7m2博客园地址:https://www.cnblogs.com/markjiang7m2/p/12769627.html官网地址:http://letyouknow.net

RabbitMQ,消息队列的一个中间件,这里不打算展开介绍了。此文意在记录工作中使用RabbitMQ时的过程及一些心得,大神可忽略。如有表述有误,各路大神可在留言区进行指正,不胜感谢。

Windows系统中安装RabbitMQ服务

安装Erlang运行环境

RabbitMQ是采用Erlang实现的,所以需要安装Erlang的运行环境。

安装Erlang OTP,官网下载https://www.erlang.org/downloads,版本自行选择,我这里用的是otpwin6422.3.exe,下载完可执行文件双击运行安装即可,这里不展开。

安装RabbitMQ

官网下载https://www.rabbitmq.com/download.html,版本自行选择,我这里用的是rabbitmq-server-3.8.3.exe,也是直接安装即可,这里不展开

启动RabbitMQ服务

打开cmd命令框,切换至C:Program FilesRabbitMQ Serverabbitmq_server-3.8.3sbin目录下,输入rabbitmqctl status查看状态,如果未启动,则可以通过rabbitmq-service进行启动,或者到Windows服务启动

rabbitmq-service命令如下,按需执行:

# 安装RabbitMQ服务rabbitmq-service install# 启动RabbitMQ服务rabbitmq-service start# 停止RabbitMQ服务rabbitmq-service stop# 删除RabbitMQ服务rabbitmq-service remove

启用RabbitMQ管理插件

#cmd命令rabbitmq-plugins.bat enable rabbitmq_management

然后在浏览器访问地址http://localhost:15672/,输入默认用户名和密码,都是guest

可以看到刚刚已经安装的RabbitMQ节点

一般我们都会先创建一个使用的user和virtual host,可以通过rabbitmqctl命令或者管理界面进行创建,我这里就直接在界面操作了。

分配user对我们将要用到的virtual host的权限

到这里为止,就已经完成了RabbitMQ服务的安装了。

自定义配置

RabbitMQ 服务默认监听的端口为 5672,管理插件默认监听的端口为 15672,那如果我们要更改这些端口,应该怎么做呢?

先贴出官网提供的文档链接https://www.rabbitmq.com/configure.html

其实官网说得很详细,我自己整理了一些我有用到的。

首先,RabbitMQ支持通过添加系统环境变量进行定制化配置。

RABBITMQNODEPORT: 默认值为 5672,RabbitMQ服务监听端口

RABBITMQ_NODENAME: Windows系统下默认值为 rabbit@%COMPUTERNAME%,RabbitMQ节点的名称

RABBITMQ_SERVICENAME: 默认值为 RabbitMQ,RabbitMQ服务名称

添加/修改了系统环境变量后,需要重新安装RabbitMQ服务才能生效,是重新安装,不是重启,使用rabbitmq-service命令

再来看看我们创建的RabbitMQ节点的一些信息

这里就包含配置文件路径,数据库文件路径,日志文件路径,默认路径都是在 C:甥敳獲%UserName%AppDataRoamingRabbitMQ目录下,也是可以通过环境变量进行个性化定制

RABBITMQCONFIGFILE: 配置文件路径,默认值为%APPDATA%RabbitMQabbitmq,官文也特别说明了,配置的时候是不带文件后缀名的

RABBITMQADVANCEDCONFIG_FILE: Advanced配置文件路径,默认值为%APPDATA%RabbitMQadvanced,同上,不带文件后缀名

RABBITMQMNESIADIR: 数据库文件路径,默认值为%APPDATA%RabbitMQ$RABBITMQ_NODENAME

到了这里,我在做实际操作的时候是有疑问的,因为出现了三个文件分别是 rabbitmq.conf, rabbitmq.config, advanced.config,特别是前面两个,一开始我一度认为只是官文不小心写错了,它们说的应该是同一个文件,然而并不是,而且这两个配置文件的写法也不一样,我又仔细看了看上面链接的官文,自己也做了一下实验,得到了下面的结论(如果有不对的,各路大神请指正)。

rabbitmq.config为RabbitMQ 3.7.0之前使用的默认配置文件,写法使用的是Erlang格式, rabbitmq.conf是RabbitMQ 3.7.0版本开始使用的默认配置文件,写法使用的是sysctl格式。而 advanced.config则是因为有一些配置无法或者很难用sysctl格式进行书写的,那就写在这个 advanced.config文件中,所以 advanced.config的写法使用的是Erlang格式。

旧版Erlang格式

[  {rabbit, [{ssl_options, [{cacertfile,           "/path/to/ca_certificate.pem"},                           {certfile,             "/path/to/server_certificate.pem"},                           {keyfile,              "/path/to/server_key.pem"},                           {verify,               verify_peer},                           {fail_if_no_peer_cert, true}]}]}].

新版sysctl格式

ssl_options.cacertfile           = /path/to/ca_certificate.pemssl_options.certfile             = /path/to/server_certificate.pemssl_options.keyfile              = /path/to/server_key.pemssl_options.verify               = verify_peerssl_options.fail_if_no_peer_cert = true

然后,为了兼容大家使用的旧版配置文件,新版RabbitMQ也仍然兼容 rabbitmq.config配置,只是在安装服务的时候会有输出提示让大家尽快升级到新版。那么这个时候就会有一个问题了,上面我们的环境变量 RABBITMQ_CONFIG_FILE是说不包含文件后缀名的,那如果我两个文件同时存在,到底会是哪个配置文件被优先使用呢?

  • 如果 rabbitmq.config、 rabbitmq.conf文件都不存在,优先使用 advanced.config中的配置
  • 只要 rabbitmq.config存在,优先使用 rabbitmq.config文件,直接忽略 advanced.config文件
  • 如果 rabbitmq.config不存在,而 rabbitmq.conf、 advanced.config同时存在,则这两个文件都会被使用

如果我们指定 RABBITMQ_CONFIG_FILE为其它文件名或者其它路径,情况也是参考如上。

这里还有一个环境变量 RABBITMQ_CONF_ENV_FILE,在Windows系统中对应的是一个批处理文件,通常命名为 rabbitmq-env-conf.bat,只要我们配置了这个环境变量,那么刚刚前面我们提到的环境变量,都可以在这个批处理文件中添加,如下:

set RABBITMQ_CONFIG_FILE=D:RabbitMQmyrabbitmq.config

也是要注意的,记得重新安装服务。

所以回到我们一开始的问题,怎么修改RabbitMQ服务监听端口和管理插件监听端口?

  1. 通过环境变量 RABBITMQ_NODE_PORT可以修改RabbitMQ服务监听端口
  2. 通过 rabbitmq.config、 advanced.config添加如下配置,使用Erlang格式:
[  {rabbit, [      {tcp_listeners, [5675]}    ]  },  {rabbitmq_management, [      {listener, [{port, 15675}]}    ]  }].
  1. 通过 rabbitmq.conf添加如下配置,使用sysctl格式:
    listeners.tcp.default = 5675    management.tcp.port = 15675

更多的配置项,可以查看官文https://www.rabbitmq.com/configure.html#config-items、https://www.rabbitmq.com/management.html,按需配置即可。

附带这三个文件的example文件rabbitmq.config.examplerabbitmq.conf.exampleadvanced.config

总结

本文就记录了我在windows系统安装RabbitMQ服务的过程,没有太多的干货,但也确实在百度上能找到关于自定义配置的说明并不多,说得也比较模糊,所以我这里就给自己做了个笔记,下次再用的时候就不会迷路了,希望也能给各位提供一些有用信息。

erlang安装_RabbitMQ的使用(一)- RabbitMQ服务安装相关推荐

  1. rabbitmq使用_RabbitMQ的使用(二) RabbitMQ服务在单机中做集群

    作者:markjiang7m2 博客园地址:https://www.cnblogs.com/markjiang7m2/p/12837151.html 官网地址:http://letyouknow.ne ...

  2. 初次安装Linux(Ubuntu)(ssh,ftp服务安装)

    目录 ■SSH服务安装 ■FTP服务安装 ■JRE安装 ■JDK安装 ■查看各种连接 ■UNIX 与 Linux ■linux命令中的参数前的一横(-)和两横(--)的区别 初次安装完毕linux之后 ...

  3. 安装、启动与停止Apache服务

      安装.启动与停止Apache服务   安装Apache相关软件 [root@centos7 ~]# rpm -q httpd [root@centos7-1 ~]# mkdir /opt/cent ...

  4. Windows下当地RabbitMQ服务的安装

    Windows下本地RabbitMQ服务的安装 本文参考:刘若泽相关技术文档 当然这些内容页可以通过RabbitMQ官方网站获得. RabbitMQ配置说明手册 一.RaibbitMQ服务器配置 1. ...

  5. 编译安装rabbitmq服务端

    有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装   总括: 需要以下步骤:   1.安装erlange.因为 ...

  6. Docker快速安装RabbitMQ服务

    Docker快速安装RabbitMQ服务 快速开始 #!/bin/bash # 建议保存为start.sh脚本执行 docker run -d --hostname my-rabbit --name ...

  7. 安装RabbitMQ时出现Plugin configuration unchanged,RabbitMQ服务启动几秒后自动关闭, http://127.0.0.1:15672/页面无法访问一并解答

    1.正常情况下的安装步骤 注意在官网安装时,尽量安装新版本,老旧版本会导致各种问题 官网下载地址:http://www.rabbitmq.com/download.html https://www.r ...

  8. RabbitMQ服务的安装与使用

    一.RabbitMQ的介绍 MQ为Message Queue,消息队列是应用和应用程序之间的通信方法. RabbitMQ是一个开源的,在AMQP基础上完整的,可复用的企业消息系统. 支持主流的操作系统 ...

  9. Win10 下 RabbitMQ 的 安装 配置

    记录下本人在win10环境下安装RabbitMQ的步骤,以作备忘. 第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安 ...

最新文章

  1. python减小内存占用_如何将Python内存占用缩小20倍?
  2. Python之父重回决策层,未来如何发展?
  3. Morris post order traversal algorithm
  4. AI领域内,敢和BAT决斗的创业公司都在这了!
  5. linux scp远程拷贝文件及文件夹
  6. 链式调用setTimeout()与setInterval()的区别
  7. python方法测试怀孕_在Python中测试私有方法(例外)
  8. 电脑账户与用户账户编码规则
  9. linkin大话设计模式--单例模式
  10. iotop监视磁盘I/O
  11. selenium-滚动
  12. 【经验】vmware虚拟机只能使用鼠标无法使用键盘、装VMware-Tools无法复制粘贴的可能解决办法
  13. Java项目源码下载S2SH基于java的保险业务管理系统
  14. 2010年中国互联网十大事件
  15. Labview与三菱PLC通讯 (2)
  16. html页面显示不全问题,网页显示不完全
  17. AD再见--AdGuardHome神器
  18. java于网络:P2P聊天系统
  19. js数组拆分成几个数组
  20. 软件史上的10大bug

热门文章

  1. scaling之旅_机器学习算法之旅 - lwaif的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. Java instanceof关键字详解
  3. mysql数据库自动化脚本备份_mysql 自动化脚本备份
  4. 华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞
  5. 蒙特卡罗模拟法 —— matlab
  6. 爬虫之祖urlib 简易教程
  7. python excel数据可视化软件_excel是基础的数据分析与可视化工具
  8. java接口文档生成工具_【分享】接口文档生成工具apipost
  9. 全数字实时仿真平台SkyEye和同步数据流语义与翻译正确性验证
  10. Python中map()函数用法