RabbitMq初学

rabbitMQ

认识mq

本地安装MQ

二:消息 队列 虚拟机

三:spring驱动模型 在spring boot项目中驱动MQ

四:实战

画龙点睛的元素 优化性能问题

低延迟

系统不健康指的是,在高并发下系统崩掉了,无法恢复.

解决高并发下的限流, 延迟队列

Spring事件驱动模型:发消息

###引用场景###

异步通信

异步解耦

RabbitMQ

业务逻辑实现解耦-------低延迟

高并发实现延迟队列------限流

Spring事件驱动模型

Spring内置:ApplicationEvent 和ApplicationListener

事件:消息(封装好的对象*String*javabeen) 继承ApplicationEvent

Spring自带 内置的和Mq功能差不多的一个模型

[main线程]

ApplicationPublisher发送器----生产者(IOC容器)--绑定---> ApplicationEvent**事件----消息--到-->

[main线程的子线程进行消费]

ApplicationListener**监听器-------消费者

[需求:将用户登录成功后的相关信息封装成实体对象,由生产者采用异步的方式发送给消费者]

@Async开启异步注解

Linux下启动RabbitMq的命令:systemctl start rabbitmq-server

重启命令:systemctl restart rabbitmq-server

停止服务:systemctl stop rabbitmq-server

6.路由器:是一个秘钥,不能单独使用而是和交换机绑定在一起.

MQ消息模型三大基本组成:队列,交换机,路由器

交换机

Producer生产者 消息 消息 队列 被消费者监听 Direct

路由器

rabbitMq中(work)模型能者多劳

第三种模型(fanout)扇出 也称为广播

第四种模型(Routing)

在Fanout模式中(广播),一条消息,会被所有订阅的队列都消费.但是,在某些场景下,我们希望不同的消息被不同的队列消费,这时就要用到Direct类型的Exchange.

Direct类型的Exchange.可以指定不同的消息被不同的队列消费.

第五种称为动态路由

RAbbitMQ的集群

集群架构

普通集群

架构图

核心解决问题:当集群中某一时刻master节点怠机,可以对quene中信息,进行备份

镜像集群

镜像队列机制就是将队列在三个节点之间设置主从关系,消息会在三个节点之间进行自动同步,且如果其中一个节点不可用,并不会导致消息丢失或服务不可用的情况,提升MQ集群的整体高可用性.

启动集群中中的rabbitmq:rabbitmq-server -detached

停止:rabbitmqctl stop_app

加入集群:rabbitmqctl join_cluster rabbit@mq1

启动:rabbitmqctl start_app

执行:rabbitmqctl cluster_status

 

以上是正确的用户名密码模式,不然会报错.

 

镜像集群======高可用

多个策越对应同一个队列,优先级数字越大,优先级越高.

查看策略:rabbitmqctl list_policies

#2.添加策略

rabbitmqctl set_policy ha-all '^hello' '{"ha-mode":"all","ha-sync-mode":"automatic"}'

删除策略: rabbitmqctl clear_policy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值