RabbitMQ

rabbitMQ入门

RabbitMQ服务命令

# 启动服务
systemctl start rabbitmq-server

# 查看服务
systemctl status rabbitmq-server

# 停止服务
systemctl stop rabbitmq-server

# 开机自启动服务
systemctl enable rabbitmq-server

RabbitMQ的配置

RabbitMQ默认情况下有一个配置文件,定义了RabbitMQ的相关配置信息,默认情况下能满足日常的开发需求,如果需要修改,需要自己创建一个配置文件进行覆盖。

参考官网:

1、https://www.rabbitmq.com/documentation.html

2、https://www.rabbitmq.com/configure.html

RabbitMQ管理界面及授权操作

RabbitMQ管理界面

# 默认安装3个插件
systemctl enable rabbitmq-server

然后再浏览器中访问:ip:15672

一定要打开15672端口 安全组

授权账号密码

新增用户

# 用户名、密码
rabbitmqctl add_user admin admin

设置用户分配操作权限

rabbitmqctl set_user_tags admin administrator

用户级别:

  • administrator 可以登录操作台,查看所有信息,可以对rabbitmq进行管理
  • monitoring 监控者 登录控制台,查看所有信息
  • policymaker 策略定制者 登录控制台,指定策略
  • managment 普通管理员,登录控制台

为用户添加资源权限

给用设置了角色就需要再设置权限,意义不大

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

小结:

".*" ".*" ".*"# 添加用户
rabbitmqctl add_user 账号 密码

# 给用户分配角色
rabbitmqctl set_user_tags 账号 administrator

# 修改密码
rabbitmqctl change_password 需要修改的用户 需要修改的密码

# 删除用户
rabbitmqctl delete_user Username 

# 查看用户清单
rabbitmqctl list_users

# 给用户设置权限
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

rabbitmqctl set_permissions -p /root ".*" ".*" ".*"

RabbitMQ之Docker安装

Docker安装RabbitMQ

虚拟化容器技术-Docker的安装

docker 安装 报错。。md搞半天 百度

docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=5615123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

RabbitMQ的角色分类

none

  • 不能访问management plugin

management:查看自己相关节点信息

  • 列出自己可以通过AMQP登入的虚拟机
  • 查看自己的虚拟机节点virtual hosts 的queues,exchanges和bindings信息
  • 查看和关闭自己的channels和connections
  • 查看有关自己的虚拟机节点virtual hosts的统计信息,包括其他用户在这个截断virtual hosts中的活动信息

Policymake

  • 包含managesment所有权限
  • 查看和创建和删除自己的virtual hosts所属的policies和parameters信息

Monitoring

  • 包含management所有权限
  • 罗列出所有的virtual hosts,包括不能登录的virtual hosts
  • 查看其他用户的connections和channels信息
  • 查看节点级别的数据如:clustering和memory使用情况
  • 查看所有的virtual hosts的全局统计信息

Administrator

  • 最高权限
  • 可以创建和删除virtual hosts
  • 可以查看,创建,删除users
  • 查看创建permisssions
  • 关闭所有用户的connections

RabbitMQ的核心组成部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jV0fefj-1640152961397)(D:\Typora主题\图片管理\image-20210319120155370.png)]

核心概念

**Server:**又称Broker,接受客户端的连接,实现AMQP实体服务,安装RabbitMQ-server

**Connection:**连接,应用程序与Broker的网络连接TCP/IP 三次握手和四次握手

**Channel:**网络通道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道,客户点可以建立对各个Channel,每个Channel代表一个会话任务

**Message:**消息,服务与应用程序之间专递的数据,有Properties和body组成,properties可以对消息进行修饰,比如消息的优先级,延迟等高特性,body则就是消息体的内容

**Virtual Host:**虚拟机地址,用于逻辑隔离,最上乘的消息路由,一个虚拟机理由可以有若干个Exhange和Queueu,同一个虚拟机里面不能有相同名字的Exchange

**Exchange:**交换机,接受消息,根据路由键发送消息到绑定的队列(不具备消息的存储能力)

**Bindings:**exchange和Queue之间的虚拟连接,binding中可以保护多个Routing key。

**Routing Key:**是一个路由规则,虚拟机可以用它来确定如何路由到一个特定的消息

**Queue:**队列,也称为Message Queue,消息队列,保存消息并将他们转发给消费者

RabbitMQ 整体架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12uYfXsR-1640152961399)(D:\Typora主题\图片管理\image-20210319121640212.png)]

RabbitMQ的运行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbJDkvon-1640152961399)(D:\Typora主题\图片管理\image-20210319121751249.png)]

RabbitMQ支持消息的模式

参考官方:https://www.rabbitmq.com/getstarted.html

RabbitMQ订阅发布模式

图解:

img

具体实现:

  • 类型:fanout
  • 特点:Fanout 发布于订阅模式,是一种广播机制,他是没有路由key的模式

RabbitMQ案例-Work模式-轮询模式

当有多个消费者时,我们的消息会被那个消费者消费呢,我们又该如何均衡消息者消费的消息呢

两种模式:

  • 轮询模式的分发:一个消费者一条,按均分配
  • 公平分发:根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理少,按劳分配

Work模式-轮询模式(Round-Robin)

  • 类型:无
  • 特点:该模式接收消息是当有多个消费者接入时,消息的分配模式是一个消费分配一条,直至消费完成

工作模式Work

类型:无

特点:发布机制

发布订阅模式

类型:fanout

特点:Fanout-发布与订阅模式,是一种广播机制,他是没有路由key 的模式

路由模式

类型:direct

特点:有routing-key的匹配模式

主题Topic模式

类型:topic

特点:模糊的routing-key的匹配模式

参数模式

类型:headers

特点:参数匹配模式

RabbitMQ使用场景

解耦,削峰,异步

同步异步的问题(串行)

串行方式:将订单消息写入数据库成功后,发送注册邮件

public void makeOrder(){
    //1:保存订单
    orderService.saveOrder();
	//2:发送短信服务
	messageService.sendSMS("order")
    //3:发送email服务
    emailService.sendEmail("order")
    //4:发送APP服务
    appService.sendApp("order")
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立勤.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值