第一章----RabbitMQ 3.8.3安装配置

1. 消息队列(Message queue)

消息队列是在消息传递过程中保存消息的容器,通过消息队列可以使用消息将应用程序连接起来。这些消息通过像RabbitMQ这样的消息代理服务器在应用程序之间路由。

运用消息队列的好处:

  • 解耦、易于扩展
  • 数据冗余、可恢复
  • 保证顺序
  • 削峰、异步通信

2. 高级消息队列协议(Advanced Message Queuing Protocol)

一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

3. RabbitMQ

RabbitMQ 是采用Erlang 语言实现AMQP的开源消息代理软件(亦称面向消息的中间件),它最初起源于金融系统,用于在分布式系统中存储转发消息。

RabbitMQ特点:

  • 可靠性:持久化、发送确认、消费确认等机制
  • 高可用:集群、镜像
  • 支持多种协议:AMQP、STOMP(面向消息的简单文本协议)、MQTT(消息队列遥测传输)
  • 多语言
  • 管理界面
  • 插件机制

4. RabbitMQ安装配置

Erlang官方下载地址

RabbitMQ官网下载地址

RabbitMQ3.8.3+Erlang22.3百度网盘下载地址,提取码:68pq

  • 安装Erlang类库
yum -y install ncurses-devel
yum -y install openssl-devel
yum -y install unixODBC-devel
yum -y install gcc-c++
yum -y install unixODBC  unixODBC-devel wxBase  wxGTK SDL wxGTK-gl
  • 安装Erlang
rpm -ivh esl-erlang_22.3.2-1_centos_7_amd64.rpm
# 验证命令
erl
  • 安装RabbitMQ
yum -y install rabbitmq-server-3.8.3-1.el7.noarch.rpm
  • 启动、停止、查看状态
systemctl  start/stop/status/restart rabbitmq-server.service 
  • 注册为开机启动
systemctl enable rabbitmq-server
systemctl disable rabbitmq-server
  • 安装界面插件
rabbitmq-plugins enable rabbitmq_management
  • 开放guest外部访问
vim /etc/rabbitmq/rabbitmq.config

[{rabbit, [{loopback_users, []}]}].

登录界面管理:http://IP:15672/

这里需要把5672/15672端口防火墙开放,如果用阿里云服务器,记得设置开放端口安全组

安装成功
  • 日志文件/var/log/rabbitmq/

    rabbit@{hostname}.log:输出rabbitmq运行相关的信息,如网络流量、用户、交换器、队列等信息
    rabbit@{hostname}-sasl.log:Erlang运行相关信息

  • 卸载RabbitMQ

yum -y remove rabbitmq-server.noarch 
# 查找相关目录删除如
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
rm -rf /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/
rm -rf /etc/rabbitmq/
rm -rf /var/log/rabbitmq

5. RabbitMQ相关命令

  • 查看用户、添加用户、设置角色、修改密码、删除用户
rabbitmqctl list_users
rabbitmqctl add_user fzb fzb2019
rabbitmqctl set_user_tags fzb administrator 
rabbitmqctl change_password  fzb fzb2020
rabbitmqctl delete_user fzb
  • 五类角色

    1. 超级管理员(administrator):可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    2. 监控者(monitoring):可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
    3. 策略制定者(policymaker):可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
    4. 普通管理者(management):仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
    5. 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。
  • 赋予用户vhost权限

rabbitmqctl set_permissions -p / \fzb ".*" ".*" ".*"

p / :赋予默认虚拟机权限
\fzb:被赋予权限用户
".*" ".*" ".*":分别映射配置、写、读
".*" "checks-.*" "":匹配任何队列和交换器、只匹配名字已checks-开头的队列和交换器、不匹配队列和交换器

读:有关消费消息的任何操作
写:发布消息
配置:队列和交换器的创建和删除

  • 查看所有用户权限、查看指定用户权限、清除权限
rabbitmqctl  list_permissions
rabbitmqctl  list_user_permissions fzb
rabbitmqctl clear_permissions -p / fzb
  • 查看vhost、创建vhost、删除vhost
rabbitmqctl list_vhosts
rabbitmqctl add_vhost vhost_fzb
rabbitmqctl list_queues -p vhost_fzb

vhost是运行在rabbit中的虚拟主机,有一个默认的虚拟主机“/”,vhost是rabbitmq分配权限的最小细粒度。

一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要,这样做既可以满足权限配置的要求,也可以避免不同业务之间队列、交换机的命名冲突问题,因为不同vhost之间是隔离的。

  • 查看队列名字、消息数目、消费者数目、内存、属性
rabbitmqctl list_queues -p vhost_fzb name messages consumers memory durable auto_delete
  • 查看交换器名字、类型、属性
rabbitmqctl list_exchanges name type durable auto_delete
  • 查看绑定(该命令不接受-p之外的命令)
rabbitmqctl list_bindings -p vhost_fzb

每一个不曾起舞的日子都是对生命的辜负

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,635评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,543评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,083评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,640评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,640评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,262评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,833评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,736评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,280评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,369评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,503评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,870评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,340评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,460评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,909评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,512评论 2 359

推荐阅读更多精彩内容

  • rabbitmq有3种模式,集群模式2种• 单机模式:即单机情况不做集群,就单独运行一个rabbitmq而已。...
    嗷大彬彬阅读 4,044评论 1 9
  • RabbitMQ采用Erlang编写,需安装语言库才能运行RabbitMQ代理服务器。AMQP:高级消息队列协议。...
    JAVA觅音阁阅读 3,658评论 0 7
  • 什么叫消息队列? 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复...
    Agile_dev阅读 2,377评论 0 24
  • 网上rabbitmq的学习日志非常丰富,官网文档也很完美,这里主要记录学习和部署过程中的一些记录。会按以下菜单进行...
    恐龙打酱油阅读 2,573评论 0 4
  • 获取UIWebView高度 UIWebView加载完成后cell高度的更新,使用通知来实现。 TableViewC...
    andyJi阅读 237评论 0 0