Rabbitmq基础知识(学习笔记)

前言

2007年,Rabbit 技术公司基于 AMQP 标准开发的 RabbitMQ 1.0 发布。RabbitMQ 采用 Erlang 语言开发。Erlang 语言专门为开发高并发和分布式系统的一种语言,在电信领域使用广泛。

一、Rabbitmq相关概念

RabbitMQ官方地址:http://www.rabbitmq.com/

Broker:接收和分发消息的应用,RabbitMQ Server就是 Message Broker
Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等
Connection:publisher/consumer 和 broker 之间的 TCP 连接
Channel:如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP Connection的开销将是巨大的,效率也较低。Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的 channel 进行通讯,AMQP method 包含了channel id 帮助客户端和message broker 识别 channel,所以 channel 之间是完全隔离的。
Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销。
Exchange:message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
Queue:消息最终被送到这里等待 consumer 取走
Binding:exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key。Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据
RabbitMQ提供了6种模式:简单模式,work模式,Publish/Subscribe发布与订阅模式,Routing路由模式,Topics主题模式,RPC远程调用模式(远程调用,不太算MQ;暂不作介绍)

二、Rabbitmq安装及配置

2.1 docker环境

操作系统:centos7.6
首先linux 需要docker环境,安装步骤可参考docker官网

2.2 下载rabbitmq镜像

[root@VM-8-14-centos ~]#docker pull rabbitmq:management

2.3 启动

[root@VM-8-14-centos ~]#docker run -d --name=rabbitmq --net=host rabbitmq:management

这里–net=host采用的是docker的主机网络模式,意味着容器和宿主机共享Network namespace。该模式需要注意端口冲突问题。docker还有其他网络模式,详情可参考官网说明。

2.4 开启管理界面及配置

(1)进入容器

[root@VM-8-14-centos ~]# docker exec -it rabbitmq /bin/bash

(2)开启管理界面

root@VM-8-14-centos:/plugins# rabbitmq-plugins  enable rabbitmq_management
Enabling plugins on node rabbit@VM-8-14-centos:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@VM-8-14-centos...
Plugin configuration unchanged.

(3)重启容器

[root@VM-8-14-centos ~]# docker restart rabbitmq

(4)检查端口:15672

[root@VM-8-14-centos ~]# netstat -antp

在这里插入图片描述

2.5 登陆

访问地址:http://ip地址:15672,默认用户guest/guest
在这里插入图片描述
管理界面
在这里插入图片描述

2.6 用户角色和Virtual Hosts配置

(1)如果需要创建⾃定义⽤户和权限,在界面Admin这里设置。
在这里插入图片描述

⻆⾊说明:
1、 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对⽤户,策略(policy)进⾏操作。
2、 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使⽤情况,磁盘使⽤情况等)
3、 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进⾏管理。但⽆法查看节点的相关信息(上图红框标识的部分)。
4、 普通管理者(management)
仅可登陆管理控制台,⽆法看到节点信息,也⽆法对策略进⾏管理。
5、 其他
⽆法登陆管理控制台,通常就是普通的⽣产者和消费者。

Virtual Hosts配置说明:
像mysql拥有数据库的概念并且可以指定⽤户对库和表等操作的权限。RabbitMQ也有类似的权限管理;
在RabbitMQ中可以虚拟消息服务器Virtual Host,每个Virtual Hosts相当于⼀个相对独⽴的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 相当于mysql的db。
Virtual Name⼀般以/开头。

(2)点击Virtual Hosts进行配置
在这里插入图片描述
在这里插入图片描述
(3)点击行头 / 进入,给admin设置同样的 / 权限。
在这里插入图片描述
(4)查看设置
在这里插入图片描述
(5)退出,登陆新用户admin
在这里插入图片描述

总结

以上就是关于rabbitmq的笔记内容,本文仅仅简单介绍了rabbitmq的基础概念和安装使用,之后会不断补充详细知识点和操作,感谢阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值