1.2 RabbitMQ

1.2.1 RabbitMQ 的概念

RabbitMQ 是一个消息中间件:接收并转发消息。

​ 你可以把它当作一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的包裹送到收件人那里。按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件

​ RabbitMQ 与快递站的主要区别在于,不处理快件,而是接收、存储、转发消息数据

1.2.2 四大核心概念

生产者

产生数据并发送消息的程序

交换机

交换机是 RabbitMQ 非常重要的一个部件,一方面它接受来自生产者的消息,另一方面它将消息推送给到队列当中。交换机必须确切知道如何处理接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是将消息丢弃,这个得有交换机类型决定

队列

队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但消息只能存储在队列中队列仅受主机内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。这就是使用队列的方式

消费者

消费与接收具有相似的含义。消费者大多数是一个等待接收消息的程序注意 生产者、消费者、消息中间件 可能不在同一机器上同一个应用程序既可以是消费者也可以是生产者

1.2.3 RabbitMQ 核心部分

1.2.4 各个名词介绍

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) , fanout (multicast) Queue(队列) 消息最终被送到这里等待被 consumer (生产者)取走 Binding(绑定): exchange(交换机)和 queue(队列)之间的虚拟连接,binding中可以包含routing key,Binding信息被保存到 exchange 中的查询表中,用于message(消息)的分发依据

1.2.5 安装

官网地址 Downloading and Installing RabbitMQ — RabbitMQ 文件上传 上传到 /usr/local/software 目录下,没有可以自己创建 安装文件 常用命令 添加开机启动 RabbitMQ 服务: chkconfig rabbitmq-server on 查看服务状态: /sbin/service rabbitmq-server status 启动服务: /sbin/service rabbitmq-server start 停止服务: /sbin/service rabbitmq-server stop 安装web端插件 rabbitmq-plugins enable rabbitmq_management 访问网址 端口号:15672 初始登录名、密码: ​ username:guest password:guest 此时不能登录,需要添加新用户 添加一个新的用户 # 创建账号和密码

rabbitmqctl add_user admin 123456

# 设置用户角色 设置为超级管理员

rabbitmqctl set_user_tags admin administrator

# 为用户添加资源权限

set_permissions [-p ]

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

# 添加配置、写、读权限

#当前用户和角色

rabbitmqctl list_users

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: