RabbitMQ安装

RabbitMQ

概述
串行:业务中需要发请求,必须等请求响应过来了,才可以进行下一步的代码操作

消息传递:服务与服务之间 通过消息发送数据来通信,而不是互相调用

排队:指得是应用程序通过队列来通信

作用:

​ 异步处理 A B C三个请求,B C不会影响A请求

​ 解耦服务 避免每个服务之间的冗余联系

​ 流量削峰 避免流量堆积

Linux安装

三个rpm包

1:erlang

2:socat

3:RabbitMQ

启动服务
shell 复制代码
   31  cd /usr/lib/rabbitmq/
   32  ls
   33  cd bin/
   34  ls
   35  rabbitmq-plugins enable rabbitmq_management
   36  systemctl restart rabbitmq-server
   37  systemctl start rabbitmq-server
   38  systemctl status rabbitmq-server
三个端口

15672 web页面

25672 集群接口

5672 接收使用代码操作的端口

shell 复制代码
[root@localhost bin]# netstat -anp|grep beam
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      20728/beam.smp
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      20728/beam.smp
tcp        0      0 127.0.0.1:59040         127.0.0.1:4369          ESTABLISHED 20728/beam.smp
tcp6       0      0 :::5672                 :::*                    LISTEN      20728/beam.smp
unix  3      [ ]         STREAM     CONNECTED     43996    20728/beam.smp
unix  3      [ ]         STREAM     CONNECTED     49040    20728/beam.smp
[root@localhost bin]#
创建管理员
shell 复制代码
[root@localhost ~]# rabbitmqctl add_user admin admin						#添加用户
Adding user "admin" ...
[root@localhost ~]# rabbitmqctl set_user_tags admin administrator			#绑定权限
Setting tags for user "admin" to [administrator] ...
[root@localhost ~]# rabbitmqctl change_password admin 123456				#修改密码
Changing password for user "admin" ...

管理界面

Connections:客户端和RabbitMQ所建立的连接

Channels:通道 传输数据

Exchanges:交换机 将数据转发到队列中

Queues:队列

Consumers:消费者

工作流程图

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 的分发依据

管理界面

相关推荐
鬼手点金1 小时前
单轮对话:最简单的 API 调用
java·服务器·前端·javascript·react.js·servlet·tomcat
code_slave(码畜)1 小时前
微服务架构落地:分库分表实战(下) —— 分布式主键、跨分片查询与分页聚合防坑
数据库·spring boot·分布式·spring cloud·微服务·架构·分库分表
牛牛牌蜡笔小新1 小时前
Java-常用类库
java·开发语言
Wang's Blog1 小时前
Java 项目实战: 交友项目 - MongoDB集群:概述
java·mongodb·交友
wangchunyu1142 小时前
JAVA ThreadLocal、伪共享与Disruptor
java
慧都小项2 小时前
图解 MyEclipse Deployment Assembly:资源如何进入部署产物?
java·ide·tomcat·maven·myeclipse·部署排查
Wang's Blog2 小时前
Java 项目实战: 交友项目 - MongoDB基础总结与自检清单
java·mongodb·交友
鬼手点金2 小时前
消息的四种角色
java·前端·人工智能·git·深度学习
zzu123zsw2 小时前
面对多 RPC 扇入超时崩溃:深入 asyncTool 核心 DAG 编排与线程池隔离防护
java·网络·spring boot·网络协议·rpc·并发编程
snpgroupcn2 小时前
SAP 系统退役的归档架构怎么设计:可检索、可理解、可追溯、可证明
java·数据库·架构