RabbitMQ入门及消息分发机制

RabbitMQ入门及消息分发机制,第1张

RabbitMQ入门及消息分发机制 RabbitMQ入门及消息分发机制 一、安装依赖环境 1、安装erlang

下载

wget -P /home/download https://github.com/rabbitmq/erlang- rpm/releases/download/v21.2.3/erlang-21.2.3-1.el7.centos.x86_64.rpm

安装

rpm -Uvh /home/download/erlang-21.2.3-1.el7.centos.x86_64.rpm
2、安装socat
sudo yum install -y socat
二、安装rabbitmq

下载

wget -P /home/download https://github.com/rabbitmq/rabbitmq- server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm

安装

rpm -Uvh /home/download/rabbitmq-server-3.7.9-1.el7.noarch.rpm
三、启动、关闭 1、启动
systemctl start rabbitmq-server
2、关闭
systemctl stop rabbitmq-server
3、查看状态
systemctl status rabbitmq-server
4、设置开机启动
systemctl enable rabbitmq-server
四、开启插件 1、查看插件列表
rabbitmq-plugins list
2、安装WEB管理插件
rabbitmq-plugins enable rabbitmq_management

说明:rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够 远程访问的用户。

五、添加用户及配置权限 1、添加用户
rabbitmqctl add_user admin admin
2、给用户分配角色
rabbitmqctl set_user_tags admin administrator
3、给用户分配 *** 作资源权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
六、RabbitMQ 的用户角色分类 1、none

不能访问 management plugin

2、management

用户可以通过AMQP做的任何事外加:
• 列出自己可以通过AMQP登入的virtual hosts
• 查看自己的virtual hosts中的queues, exchanges 和 bindings
• 查看和关闭自己的channels 和 connections
• 查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

3、policymaker

management可以做的任何事外加: • 查看、创建和删除自己的virtual hosts所属的policies和parameters

4、monitoring

management可以做的任何事外加:
• 列出所有virtual hosts,包括他们不能登录的virtual hosts
• 查看其他用户的connections和channels
• 查看节点级别的数据如clustering和memory使用情况
• 查看真正的关于所有virtual hosts的全局的统计信息

5、administrator

policymaker和monitoring可以做的任何事外加:
• 创建和删除virtual hosts
• 查看、创建和删除users
• 查看创建和删除permissions
• 关闭其他用户的connections

七、防火墙开启端口 1. 添加端口

sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

2、重启防火墙

sudo firewall-cmd --reload

八、RabbitMq 1、生产者

生产者,就是投递消息的一方。生产者创建消息,然后发布到 RabbitMQ 中。

消息一般包括两个部分,消息体和附加信息

消息体:一般是带有业务逻辑结构的数据,比如json,也可以进一步对数据进行序列化 *** 作

附加消息:比如目标交换器的名称、路由键等

2、消费者

消费者,就是接收消息的一方。消费者连接到 RabbitMQ 服务器,并订阅到队列 上 。

当消费者消费一条消息,只有消息的消息体,在消费的路由中消息的标签会丢弃,只有消息体,所以消费者不知道嗜睡生产的消息

3、Broker

消息中间件的服务节点

对Rabbitmq来说一个Broker就是一个服务节点或者Rabbitmq服务实例,也可以将Broker看做一台Rabbitmq的服务器

4、Virtual Host

虚拟主机,表示一批交换机、消息队列等对象

每个Virtual Host就是一个mini的Rabbitmq服务,拥有自己的队列,交换机,绑定和权限机制,连接时必须指定,默认的是 /

5、Channel

频道或信道,是建立在Connection上的轻量级连接
大部分的 *** 作实在Channel中完成的,队列的声明QueueDeclare,交换机的声明exchageDeclare,队列的绑定queueBind,发布消息basicPublish,消费消息等basicConsume等

Connection上可以创建任意数量的Channel

6、RoutingKey

路由键。生产者将消息发送给交换机的时候一般会绑定路由键,用来指定这个消息的路由规则

RoutingKey需要与交换器类型和绑定键(bindingKey)联合使用,一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert

7、Exchange

交换器,生产者将消息发送给交换器,交换器将消息路由到一个或多个队列,如果路由不到,则返还给生产者或丢弃

8、Queue

队列,Rabbitmq内部对象,用来存储消息

9、Binding

绑定,rabbitmq通过绑定将交换器和队列联系起来,一般会指定一个路由键,这样就可以知道路由到哪个队列

10、Exchange类型及说明

常用的交换器类型:topic、fanout、direct、headers

1、fanout

扇型交换机,可以将消息路由到所有与该交换器绑定的队列中

2、topic

主题交换机,与direct类似,但是可以通过通配符进行模糊匹配

通配符

#:匹配一个或多个词
*:只能匹配一个词

3、direct

直连交换机,会把消息路由到路由键与绑定键完全对应的队列中

4、headers

头交换机,不依赖于路由键的匹配规则来路由消息,而是根据发送的消息内容中的 headers 属性进行 匹配
header交换机性能很差,而且不实用

九、RabbitMq结构视图

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5716559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存