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

管理界面

相关推荐
闲猫4 小时前
Spring AI 对接Deepseek ChatModel 聊天对话
java·前端·spring
paopaokaka_luck5 小时前
英语单词学习系统的设计与实现(基于艾宾浩斯遗忘曲线的智能复习机制、语音朗读、多题型测试与错题自动收录、Echarts图形化分析)
vue.js·spring boot·后端·echarts
自信的未来5 小时前
JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
java·前端·json
Brookty5 小时前
【JavaEE】线程安全(一).4:写块串行保安全、CAS
java·开发语言·java-ee·多线程·线程安全
怕孤单的草丛6 小时前
缓存管理面临的主要问题
java·数据库·缓存
犀利豆8 小时前
AI in Harness(二)
java·人工智能·后端
沉静的小伙10 小时前
在微服务中使用领域事件
java·运维·微服务
程序员在囧途10 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
醇氧10 小时前
Spring 容器 Map 注入机制详解
java·后端·spring