1. RabbitMQ 简介

消息 (Message) 是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、JSON等,也可以很复杂,比如内嵌对象。

消息队列中间件(Message Queue Middleware ,简称为 MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

消息队列中间件,也可以称为消息队列或者消息中间件。它一般有两种传递模式:点对点(P2P, Point-to-Point)模式和发布/订阅(Pub/Sub)模式。

点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。

发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题(topic),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者则从主题中订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用。

RabbitMQ 是基于 Erlang 语言,实现了 AMQP 协议实现的消息队列中间件。

2. RabbitMQ 安装

本文使用 Ubuntu16.04 安装 RabbitMQ

2.1 安装 erlang

由于 RabbitMQ 需要 erlang 语言的支持,所以在安装 RabbitMQ 之前需要先安装 erlang

sudo apt-get install -y erlang-nox

2.2 安装 RabbitMQ

执行以下命令

sudo apt-get update
sudo apt-get install rabbitmq-server

RabbitMQ 会被安装在 /usr/lib/rabbitmq

2.3 RabbitMQ 和 Erlang 版本对应关系

RabbitMQErlang 版本不匹配时会导致 RabbitMQ 环境异常,所以在安装之前必须要注意两者之间的匹配关系,具体可参考官方链接

RabbitMQ 和 Erlang 版本对应关系

2.4 使用 Docker 方式安装

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

3. RabbitMQ 命令

  • 启动 RabbitMQ
sudo rabbitmq-server start
  • 关闭 RabbitMQ
sudo rabbitmq-server stop
  • 重启 RabbitMQ
sudo rabbitmq-server restart
  • 查看 RabbitMQ 状态
sudo rabbitmqctl status

输出结果如下:

~/software$ sudo rabbitmqctl status
Status of node rabbit@iZm5egn5zptnov4j3oxh4fZ ...
[{pid,19060},{running_applications,[{rabbit,"RabbitMQ","3.5.7"},{mnesia,"MNESIA  CXC 138 12","4.13.3"},{os_mon,"CPO  CXC 138 46","2.4"},{xmerl,"XML parser","1.3.10"},{sasl,"SASL  CXC 138 11","2.7"},{stdlib,"ERTS  CXC 138 10","2.8"},{kernel,"ERTS  CXC 138 10","4.2"}]},{os,{unix,linux}},{erlang_version,"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [async-threads:64] [kernel-poll:true]\n"},{memory,[{total,40553872},{connection_readers,0},{connection_writers,0},{connection_channels,0},{connection_other,2592},{queue_procs,2592},{queue_slave_procs,0},{plugins,0},{other_proc,13540144},{mnesia,58592},{mgmt_db,0},{msg_index,34584},{other_ets,744088},{binary,13200},{code,16965867},{atom,654217},{other_system,8537996}]},{alarms,[]},{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},{vm_memory_high_watermark,0.4},{vm_memory_limit,838911590},{disk_free_limit,50000000},{disk_free,37157068800},{file_descriptors,[{total_limit,65436},{total_used,3},{sockets_limit,58890},{sockets_used,1}]},{processes,[{limit,1048576},{used,123}]},{run_queue,0},{uptime,25}]
  • 查看 RabbitMQ 进程
ps -ef | grep rabbitmq

4. RabbitMQ 配置远程连接

远程访问 RabbitMQ 自己增加一个用户,步骤如下:

  1. 创建一个 admin 用户:
sudo rabbitmqctl add_user admin 123123
  1. 设置该用户为 administrator 角色:
sudo rabbitmqctl set_user_tags admin administrator
  1. 设置权限
sudo rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'
  1. 重启 rabbitmq 服务:
 sudo service rabbitmq-server restart

之后就能用 admin 用户远程连接 rabbitmq server 了。

注意:RabbitMQ 默认使用 5672 端口,如果是在云端部署的话需要确认云端的 5672 端口开启。

5. 启用 Web 管理插件

查看默认支持的所有插件:

rabbitmq-plugins list

进入到 RabbitMQ 的安装目录执行

rabbitmq-plugins enable rabbitmq_management

访问 http://localhost:15672/:

就可以看到 RabbitMQ 的 web 页面。

RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置相关推荐

  1. RabbitMQ 入门系列(10)— RabbitMQ 消息持久化、不丢失消息

    消息要保持"持久化",即不丢失,必须要使得消息.交换器.队列,必须全部 "持久化". 1. 生产者怎么确认 RabbitMQ 已经收到了消息? # 打开通道的确 ...

  2. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置

    1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...

  3. RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)

    1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...

  4. RabbitMQ 入门系列(5)— RabbitMQ 使用场景优缺点

    1. 为什么要使用 MQ 1.1 异步 怎么理解异步这个概念呢? 举个简单的例子,假设有个业务需要写数据库,但是呢写数据库需要一定的网络开销,可能是几毫秒或者几十毫秒,这对于延时要求很高的业务来说是不 ...

  5. Nvidia Jetson篇----Jetson xavier nx 入门系列 各类组件安装

    Jetson xavier nx 入门系列 各类组件安装 一.刷机预装组件版本检查 二.换源 三.安装Jetson-stats管理工具 四.附录 一.刷机预装组件版本检查 1.Jetson版本 刷机版 ...

  6. 【Ubuntu安装后基本配置】

    [Ubuntu安装后基本配置] 1. 前言 2. 连接无线网 2.1 wifi连接 2.2 有线连接 3. 中英文输入法切换 4. Firefox浏览器视频 4.1 分析视频播放 4.2 解决办法 4 ...

  7. ubuntu安装jdk11并配置环境变量

    ubuntu安装jdk11并配置环境变量 下载 jdk11官方地址地址失效就自己官方找吧 点击下载,官网下载需要登录oracle账号,没有的注册 目前官网是11.0.12版本,我电脑上是11.0.11 ...

  8. Ubuntu安装RabbitMQ

    1.首先确认Linux 内核版本,确定是Ubuntu 还是CentOS版本:uname -a 2.rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令  ...

  9. RabbitMQ 入门系列(2)— 生产者、消费者、信道、代理、队列、交换器、路由键、绑定、交换器

    本系列是「RabbitMQ实战:高效部署分布式消息队列」和 「RabbitMQ实战指南」书籍的读书笔记. RabbitMQ 中重要概念 1. 生产者 生产者(producer)创建消息,然后发送到代理 ...

最新文章

  1. 先进驾驶辅助系统ADAS一些技术应用小结
  2. 【转】设计模式 ( 十七) 状态模式State(对象行为型)
  3. 【Spring】Spring高级话题-@Enable***注解的工作原理
  4. NeurIPS 2021 | 视频压缩框架DCVC:从残差编码到条件编码,建模上下文
  5. 直播丨2020年全国首场12c OCM直考揭秘
  6. Codeforces Round #237 (Div. 2)
  7. Sublime text2 插件推荐
  8. NLP数据标注常用工具汇总
  9. vm8.0下安装mac
  10. php模拟post提交 在线,curl post请求 , postman 模拟请求 , 在线测试工具模拟请求...
  11. OPPOR9Plus系列通刷刷机包精简包_OPPOR9Plus线刷包救砖包_OPPOR9Plus纯净刷机包_OPPOR9Plus刷机教程下载
  12. WEB漏洞之:海洋CMS代码执行(CNVD-2020-22721)
  13. Knime基础数据案例(1)统计数据分组
  14. 呀!原来这就是前端监控系统
  15. “创享杯”第一届电子数据取证线上大比武答案(自做)
  16. 永久修改DNS域名服务器
  17. 算法的时间复杂度的计算
  18. Java IO流学习总结三十一:File
  19. 高等数学(Calculus II)
  20. 手机扫描证件识别的优势

热门文章

  1. sql特殊字符转义,oracle中将字符 ‘ 转义
  2. 2022-2028年中国钢桶行业市场研究及前瞻分析报告
  3. 2022-2028年中国激光脱毛仪行业市场调查研究报告
  4. 2022-2028年中国环保服务业投资分析及前景预测报告
  5. Python gRPC 安装
  6. 数据结构(01)— 算法复杂度概念及常见的复杂度计算
  7. Go 学习笔记(65)— Go 中函数参数是传值还是传引用
  8. 3 用python进行OpenCV实战之画图(直线,矩形,圆形)
  9. python压缩和解压缩
  10. python if elif else 区别