下载
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.rpm2、安装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-server2、关闭
systemctl stop rabbitmq-server3、查看状态
systemctl status rabbitmq-server4、设置开机启动
systemctl enable rabbitmq-server四、开启插件 1、查看插件列表
rabbitmq-plugins list2、安装WEB管理插件
rabbitmq-plugins enable rabbitmq_management
五、添加用户及配置权限 1、添加用户说明:rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够 远程访问的用户。
rabbitmqctl add_user admin admin2、给用户分配角色
rabbitmqctl set_user_tags admin administrator3、给用户分配 *** 作资源权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"六、RabbitMQ 的用户角色分类 1、none
2、management不能访问 management plugin
3、policymaker用户可以通过AMQP做的任何事外加:
• 列出自己可以通过AMQP登入的virtual hosts
• 查看自己的virtual hosts中的queues, exchanges 和 bindings
• 查看和关闭自己的channels 和 connections
• 查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
4、monitoringmanagement可以做的任何事外加: • 查看、创建和删除自己的virtual hosts所属的policies和parameters
5、administratormanagement可以做的任何事外加:
• 列出所有virtual hosts,包括他们不能登录的virtual hosts
• 查看其他用户的connections和channels
• 查看节点级别的数据如clustering和memory使用情况
• 查看真正的关于所有virtual hosts的全局的统计信息
七、防火墙开启端口 1. 添加端口policymaker和monitoring可以做的任何事外加:
• 创建和删除virtual hosts
• 查看、创建和删除users
• 查看创建和删除permissions
• 关闭其他用户的connections
2、重启防火墙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
八、RabbitMq 1、生产者sudo firewall-cmd --reload
2、消费者生产者,就是投递消息的一方。生产者创建消息,然后发布到 RabbitMQ 中。
消息一般包括两个部分,消息体和附加信息
消息体:一般是带有业务逻辑结构的数据,比如json,也可以进一步对数据进行序列化 *** 作
附加消息:比如目标交换器的名称、路由键等
3、Broker消费者,就是接收消息的一方。消费者连接到 RabbitMQ 服务器,并订阅到队列 上 。
当消费者消费一条消息,只有消息的消息体,在消费的路由中消息的标签会丢弃,只有消息体,所以消费者不知道嗜睡生产的消息
4、Virtual Host消息中间件的服务节点
对Rabbitmq来说一个Broker就是一个服务节点或者Rabbitmq服务实例,也可以将Broker看做一台Rabbitmq的服务器
5、Channel虚拟主机,表示一批交换机、消息队列等对象
每个Virtual Host就是一个mini的Rabbitmq服务,拥有自己的队列,交换机,绑定和权限机制,连接时必须指定,默认的是 /
6、RoutingKey频道或信道,是建立在Connection上的轻量级连接
大部分的 *** 作实在Channel中完成的,队列的声明QueueDeclare,交换机的声明exchageDeclare,队列的绑定queueBind,发布消息basicPublish,消费消息等basicConsume等Connection上可以创建任意数量的Channel
7、Exchange路由键。生产者将消息发送给交换机的时候一般会绑定路由键,用来指定这个消息的路由规则
RoutingKey需要与交换器类型和绑定键(bindingKey)联合使用,一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert
8、Queue交换器,生产者将消息发送给交换器,交换器将消息路由到一个或多个队列,如果路由不到,则返还给生产者或丢弃
9、Binding队列,Rabbitmq内部对象,用来存储消息
10、Exchange类型及说明绑定,rabbitmq通过绑定将交换器和队列联系起来,一般会指定一个路由键,这样就可以知道路由到哪个队列
1、fanout常用的交换器类型:topic、fanout、direct、headers
2、topic扇型交换机,可以将消息路由到所有与该交换器绑定的队列中
主题交换机,与direct类似,但是可以通过通配符进行模糊匹配
3、direct通配符
#:匹配一个或多个词
*:只能匹配一个词
4、headers直连交换机,会把消息路由到路由键与绑定键完全对应的队列中
九、RabbitMq结构视图头交换机,不依赖于路由键的匹配规则来路由消息,而是根据发送的消息内容中的 headers 属性进行 匹配
header交换机性能很差,而且不实用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)