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

管理界面

相关推荐
6190083369 分钟前
linux 安装jdk
java·linux·运维
懂得节能嘛.12 分钟前
【动态配置中心】Java+Redis构建动态配置中心
java·开发语言·redis
专注于大数据技术栈13 分钟前
Java中JDK、JRE、JVM概念
java·开发语言·jvm
YuanlongWang17 分钟前
C# 基础——值类型与引用类型的本质区别
java·jvm·c#
Kay_Liang42 分钟前
大语言模型如何精准调用函数—— Function Calling 系统笔记
java·大数据·spring boot·笔记·ai·langchain·tools
自由的疯1 小时前
Java 如何学习Docker
java·后端·架构
自由的疯1 小时前
Java Docker本地部署
java·后端·架构
007php0071 小时前
猿辅导Java面试真实经历与深度总结(二)
java·开发语言·python·计算机网络·面试·职场和发展·golang
摇滚侠1 小时前
Spring Boot 3零基础教程,WEB 开发 内容协商机制 笔记34
java·spring boot·笔记·缓存
一勺菠萝丶1 小时前
在 macOS 上用 Docker 为 Java 后端 & 常见开发需求搭建完整服务(详尽教程)
java·macos·docker