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

管理界面

相关推荐
seasugar4 分钟前
Maven怎么会出现一个dependency-reduced-pom.xml的文件
xml·java·maven
一只淡水鱼668 分钟前
【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
java·数据库·spring·mybatis
唐叔在学习25 分钟前
【唐叔学算法】第19天:交换排序-冒泡排序与快速排序的深度解析及Java实现
java·算法·排序算法
music0ant29 分钟前
Idea 配置环境 更改Maven设置
java·maven·intellij-idea
记得开心一点嘛44 分钟前
Nginx与Tomcat之间的关系
java·nginx·tomcat
界面开发小八哥1 小时前
「Java EE开发指南」如何用MyEclipse构建一个Web项目?(一)
java·前端·ide·java-ee·myeclipse
王伯爵1 小时前
<packaging>jar</packaging>和<packaging>pom</packaging>的区别
java·pycharm·jar
Q_19284999061 小时前
基于Spring Boot的个人健康管理系统
java·spring boot·后端
m0_748245172 小时前
Web第一次作业
java
小码的头发丝、2 小时前
Java进阶学习笔记|面向对象
java·笔记·学习