2020/04/03 01-RabbitMQ安装、管理和名词解释

在这里插入图片描述
rabbitmq是非常主流的第三方消息队列,队列在解决高并发的时候是非常重要的角色,系统间解耦需要,高并发也需要,在很多生产者和消费者,队列一定会使用。
还有大数据领域使用的kafka。
rabbitmq是要解决高并发和系统间解耦人问题,实现的东西也是大多数队列都支持 的东西,叫AMQP高级消息队列协议,只要这个队列支持AMQP,都可以用这个库来连接你。
Erlang语言也是在go语言之前提过高并发场景下应用的语言。
rabbitmq文档很详细,支持各种文档都有,也跟它使用的AMQP协议一样

在这里插入图片描述
rabbitmq底层基于erlang语言写的,还要安装一些依赖,用这三个包,加上一些yum源就可以了
在这里插入图片描述
需要把rabbitmq的依赖放前面,让依赖先安装
在这里插入图片描述
这样rabbitmq单机版就安装完了

在这里插入图片描述
看看帮助
在这里插入图片描述
看看list里有什么

不管怎么安装都需要依赖

在这里插入图片描述
安装完可以rpm -ql列出所有的rabiitmq-server相关的东西在这里插入图片描述
真正要启动服务的时候其实是启动这个

在这里插入图片描述
使用的配置都是在这个文件夹里
在这里插入图片描述
日志还有man文件
在这里插入图片描述

在这里插入图片描述
配置文件可以放在/etc/rabbitmq/rabbitmq
在这里插入图片描述
这是设定ip地址的
在这里插入图片描述
端口还是要记一下

在这里插入图片描述

dist_port也就是分布式port,集群服务内部通信用的,在上面当前port上+20000。默认变成了25672,内部通信使用
在这里插入图片描述在这里插入图片描述
工作特性配置可以使用两种,一种是erlang语言的配置,一种是sysctl的配置,rabbitmq鼓励使用的
在这里插入图片描述
在这里插入图片描述
现在列出了这么多插件
在这里插入图片描述
我们需要使用换个来启动起来

在这里插入图片描述
这个启用相当于管理,它自己解决管理所依赖的其他插件,启用这些插件,这些服务就自动装载起来了,依赖agent,还依赖外部分发的
在这里插入图片描述
准备好插件就是启动服务了,在init.d里有rabbit-server,所以我们就用这个来启动
在这里插入图片描述
在这里插入图片描述
如果出现这样的问题,往往是.erlang.cookie权限不对
在这里插入图片描述
把属主属组给rabbitmq即可
在这里插入图片描述

在这里插入图片描述
服务启动后会提供三个端口,web端口是在5672+10000端口上,25672是内部通信用的
在这里插入图片描述
在这里插入图片描述
启动之后会创建这么个日志

在这里插入图片描述
5672一定要启动 ,不然编程没办法编,15672是web端口,25672是集群通信用的

在这里插入图片描述
默认有guest用户,密码也是guest,这个用户只能通过localhost访问
在这里插入图片描述
在这里插入图片描述
查看下帮助

在这里插入图片描述
<尖括号表示必须要给
在这里插入图片描述

在这里插入图片描述
这个命令也很重要,为某一个用户设置tag标签
在这里插入图片描述
这里是没有用户组的概念,用户组可以作为标签,标签其实就是用户组的意思,打标签就是授予某种用户角色
在这里插入图片描述
进不去是因为没有标签

在这里插入图片描述
在这里插入图片描述
授予管理员权限,也可以看下有什么标签

在这里插入图片描述
登录
在这里插入图片描述
每5秒刷新一次
在这里插入图片描述
overview概述
在这里插入图片描述
用 了多少文件描述符都可以看到

在这里插入图片描述
用amqp协议就需要用5672,25672集群内部通信用的,启动的插件在15672上

在这里插入图片描述
现在还没有一个在amqp链接上来的
在这里插入图片描述
这里还有通道的概念
在这里插入图片描述
交换机
在这里插入图片描述
这是消息队列
在这里插入图片描述
这是一个管理的地方,不仅仅是管理谁能进入到这个管理端,而且还能控制你能访问什么,最重要的就是它,它这里是有虚拟主机的概念

在这里插入图片描述
打开wayne用户
在这里插入图片描述
访问不能访问来设置

在这里插入图片描述
设置用户使用amqp,能够用哪个虚拟主机

在这里插入图片描述
加一个用户,刚才没有关联tag进不来

在这里插入图片描述
management,管理,用户只能访问管理插件
policymaker策略,能够访问管理策略,能够访问虚拟主机的参数
,monitoring监控,可以登录web看到监控
administrator管理元

在这里插入图片描述
这些事比较重要的用户相关命令

在这里插入图片描述
列出所有用户以及打印的tag

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置了tag,现在两个都是administrator
在这里插入图片描述
管理员权限比较打,几乎无所不能

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根缺省为虚拟主机

在这里插入图片描述
这个/是缺省虚拟主机
在这里插入图片描述
可以进行管理
在这里插入图片描述
目前能访问只有guest
在这里插入图片描述
通过channel就可以链接到虚拟主机下的交换机
在这里插入图片描述缺省的虚拟主机只能被guest的用户使用

在这里插入图片描述
rabbitmq官方提供了很多编程实例,生产者如何写,消费者如何写,代码拿过来直接用没有任何问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
支持这么多工作模式,前5种是需要掌握的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在rabbitmq就是个server,提供了amqp协议的服务,这种就叫消息队列

在这里插入图片描述
还有一种名字叫broker,也就是中间人代理人意思
在这里插入图片描述
指的是物理链接
在这里插入图片描述
一个链接允许多个客户端链接
在这里插入图片描述
交换机可以接收发来的消息,就是发来的消息先经过它,消息到了虚拟主机后就要找到交换机了,然后通过交换机将消息按照一定规则传递给队列
在这里插入图片描述
发来的消息称为message,消息通过交换机按照指定的发布的规则direct,topic,fanout,通过这些规则来发这些消息,发给queue这些消息对列
在这里插入图片描述
queue是这些消息的存储载体,生产者把消息存储到消息队列里;消费者链接到服务端来,要链接到哪个虚拟主机下,哪个队列上,消息队列也是队列,一般是先进先出

在这里插入图片描述
在这里插入图片描述
交换机和队列并不相干,将队列bind绑定到交换机上就可以了,这样交换机才会将这些数据分发给消息队列

在这里插入图片描述
是一批交换机,消息队列,和相关对象的集合,也就是将交换机和消息队列放在虚拟主机里,而用户找虚拟主机。用户可以访问不同的虚拟主机,也就是这样将交换机和消息队列做了隔离,不同的用户访问不同的虚拟主机,也就是不同虚拟主机里的交换机和queue,互不干扰。
虚拟主机这个概念就是在逻辑层次上再做了一次隔离

在这里插入图片描述
在这里插入图片描述
server和broker,必须知道,说到消息队列,这个就是服务端,server跟生产者和消费者没关系,server=broker就是个中介,生产者将数据打入队列,消费者去队列拿数据消费数据,生产者和消费者要不要建立链接来这个broker,所以connection是需要的,提供 了channel概念,就是会话的概念,交换机是内部的东西,主要是消息如何路由,消息交给谁,把消息存到哪个queue里也需要路由。路由需要交换机来做。
大多数消息队列都叫消息,不管路由,最后需要存到队列,消费者去队列拿消息,这就是概念,内部提供了交换机和queue做绑定

发布了243 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_42227818/article/details/105302984