RabbitMQ核⼼概念、安装和管控台介绍

181 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

一、什么是RabbitMQ消息队列和核⼼概念介

1)RabbitMQ消息队列简单介绍

  • 是⼀个开源的AMQP实现,服务器端⽤Erlang语⾔编 写,⽀持多种客户端,如:Python、Ruby、.NET、 Java、C、⽤于在分布式系统中存储转发消息,在易⽤ 性、扩展性、⾼可⽤性等⽅⾯表现不错,与SpringAMQP完美的整合、API丰富易⽤
  • ⽂档:www.rabbitmq.com/getstarted.…

2)核⼼概念

了解了这些概念,是使⽤好RabbitMQ的基础

image0.png 0. Producer/消息生产者

0.  创建消息Message,然后发布给RabbitMQ服务端

0. Message/消息

0.  生产者生产出来,消费者消费的对象,有消息头和消息体,包含多个属性配置,比如routingkey

0. RoutingKey/路由键

0.  生产者将消息发送给交换器时,一般会指定一个RountingKey,用来指定这个消息的路由规则
0.  最常长度255字节

0. Connection/连接

0.  是RabbitMQ的socket/套接字链接,它封装了socket协议相关部分逻辑
0.  一个连接上可以有多个channel进行通信

0. Channel/信道

0.  一条支持多路复用的通道,独立的双向数据流通道,可以进行发布、订阅、接收消息
0.  信道是建立在真是的TCP连接内的虚拟连接,复用TCP连接的通道

0. Broker/服务端

0.  RabbitMQ的服务端程序,可以认为一个MQ节点就是一个Broker

0. Exchange/交换机

0.  生产者将消息发送到Exchange,Exchange将消息再路由到一个或者多个队列中
0.  交换机有多个类型
0.  队列和交换机是多对多的关系

0. Binding/绑定

0.  通过绑定将交换机和队列关联起来,在绑定的时候一般会指定一个绑定key,这样RabbitMQ就知道如何正确地将消息路由到对应的队列
0.  生产者将消息发送给交换器时,会指定一个RoutingKey,当BindKey和RountingKey相匹配时,消息就会被路由到对应的队列中。

0. Queue/队列

0.  是RabbitMQ的内部对象,用于存储消息,在RabbitMQ中,消息对象只能存储到队列中

0. Virtual host/虚拟主机

  1. 用于把不同业务模块进行逻辑隔离,一个Virtual host里可以有若干个Exchange和Queue,同一个Virtual host里面不能有相同名字的Exchange或Queue

  2. Virtual host默认是/,可以自己增加,比如说/dev、/test、/pro

  3. Consummer/消费者

  4. 消费Queue中的消息

二、安装Linux环境的RabbitMQ的方式

RabbitMQ安装⽅式安装⽂档

1)源码安装(不推荐)

  • 依赖多、且版本和维护相对复杂
  • 需要erlang环境、版本也是有要求

2)docker镜像安装(推荐)

  • 不⽤安装其他相关依赖,容器化部署是趋势
  • ⽅便管理维护,企业多采⽤这个⽅式
  • Linux服务器准备:CentOS7.x以上即可

三、Docker安装RabbitMQ

1)安装Docker

  • 连接上服务器(Centos7以上)
  • 依次运⾏以下命令添加yum源
 yum update
 yum install epel-release -y
 yum clean all
 yum list
  • 安装并运行Docker服务
 yum install docker-io -y
 systemctl start docker
  • 检查安装结果
 docker info
  • 启动并使用Docker
 systemctl start docker #运⾏Docker守护进程
 systemctl stop docker #停⽌Docker守护进程
 systemctl restart docker #重启Docker守护进程

2)安装RabbitMQ

  • 拉取镜像
 #拉取镜像
 docker pull rabbitmq:management
 docker run -d --hostname rabbit_host1 --name xd_rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
  • 参数解释

    • -d 以守护进程⽅式在后台运⾏

    • --hostname:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts,作为容器主机IP的别 名,并且将显示在容器的bash中

    • --name:指定容器名

    • -e 参数

      • RABBITMQ_DEFAULT_USER ⽤户名
      • RABBITMQ_DEFAULT_PASS 密码
    • -p 15672:15672 management 界⾯管理访问端⼝

    • -p 5672:5672 amqp 访问端⼝

  • 主要端口介绍

    • 4369 erlang 发现⼝
    • 5672 client 端通信⼝(需映射)
    • 15672 管理界⾯ ui 端⼝(需映射)
    • 25672 server 间内部通信⼝
  • 安装启动完毕后,访问web管理界面

  • 注意事项

    • Linux服务器检查防⽕墙是否关闭
    • 云服务器检查⽹络安全组是否开放端⼝
 # CentOS 7 以上默认使⽤的是firewall作为防⽕墙
 # 查看防⽕墙状态
 firewall-cmd --state
 # 停⽌firewall
 systemctl stop firewalld.service
 # 禁⽌firewall开机启动
 systemctl disable firewalld.service

四、管控台介绍

1)登录

账号/密码默认是:guest/guest;上文的启动命令中更改了账号密码:admin/password ####

2)界面功能介绍

image.png

image2.png

image3.png

image4.png

3)更详细

www.cnblogs.com/biehongli/p…