RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置
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 版本对应关系
RabbitMQ
和 Erlang
版本不匹配时会导致 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
自己增加一个用户,步骤如下:
- 创建一个 admin 用户:
sudo rabbitmqctl add_user admin 123123
- 设置该用户为 administrator 角色:
sudo rabbitmqctl set_user_tags admin administrator
- 设置权限
sudo rabbitmqctl set_permissions -p '/' admin '.' '.' '.'
- 重启 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 及配置相关推荐
- RabbitMQ 入门系列(10)— RabbitMQ 消息持久化、不丢失消息
消息要保持"持久化",即不丢失,必须要使得消息.交换器.队列,必须全部 "持久化". 1. 生产者怎么确认 RabbitMQ 已经收到了消息? # 打开通道的确 ...
- RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置
1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...
- RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)
1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...
- RabbitMQ 入门系列(5)— RabbitMQ 使用场景优缺点
1. 为什么要使用 MQ 1.1 异步 怎么理解异步这个概念呢? 举个简单的例子,假设有个业务需要写数据库,但是呢写数据库需要一定的网络开销,可能是几毫秒或者几十毫秒,这对于延时要求很高的业务来说是不 ...
- Nvidia Jetson篇----Jetson xavier nx 入门系列 各类组件安装
Jetson xavier nx 入门系列 各类组件安装 一.刷机预装组件版本检查 二.换源 三.安装Jetson-stats管理工具 四.附录 一.刷机预装组件版本检查 1.Jetson版本 刷机版 ...
- 【Ubuntu安装后基本配置】
[Ubuntu安装后基本配置] 1. 前言 2. 连接无线网 2.1 wifi连接 2.2 有线连接 3. 中英文输入法切换 4. Firefox浏览器视频 4.1 分析视频播放 4.2 解决办法 4 ...
- ubuntu安装jdk11并配置环境变量
ubuntu安装jdk11并配置环境变量 下载 jdk11官方地址地址失效就自己官方找吧 点击下载,官网下载需要登录oracle账号,没有的注册 目前官网是11.0.12版本,我电脑上是11.0.11 ...
- Ubuntu安装RabbitMQ
1.首先确认Linux 内核版本,确定是Ubuntu 还是CentOS版本:uname -a 2.rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令 ...
- RabbitMQ 入门系列(2)— 生产者、消费者、信道、代理、队列、交换器、路由键、绑定、交换器
本系列是「RabbitMQ实战:高效部署分布式消息队列」和 「RabbitMQ实战指南」书籍的读书笔记. RabbitMQ 中重要概念 1. 生产者 生产者(producer)创建消息,然后发送到代理 ...
最新文章
- 先进驾驶辅助系统ADAS一些技术应用小结
- 【转】设计模式 ( 十七) 状态模式State(对象行为型)
- 【Spring】Spring高级话题-@Enable***注解的工作原理
- NeurIPS 2021 | 视频压缩框架DCVC:从残差编码到条件编码,建模上下文
- 直播丨2020年全国首场12c OCM直考揭秘
- Codeforces Round #237 (Div. 2)
- Sublime text2 插件推荐
- NLP数据标注常用工具汇总
- vm8.0下安装mac
- php模拟post提交 在线,curl post请求 , postman 模拟请求 , 在线测试工具模拟请求...
- OPPOR9Plus系列通刷刷机包精简包_OPPOR9Plus线刷包救砖包_OPPOR9Plus纯净刷机包_OPPOR9Plus刷机教程下载
- WEB漏洞之:海洋CMS代码执行(CNVD-2020-22721)
- Knime基础数据案例(1)统计数据分组
- 呀!原来这就是前端监控系统
- “创享杯”第一届电子数据取证线上大比武答案(自做)
- 永久修改DNS域名服务器
- 算法的时间复杂度的计算
- Java IO流学习总结三十一:File
- 高等数学(Calculus II)
- 手机扫描证件识别的优势