RabbitMQ
文章平均质量分 77
Fairy要carry
欲戴其冠,必承其重
展开
-
消息队列的一些思考
像我们Feign进行服务远程调用就会出现上述情况,服务调用是同步的,需要保证整个链路成功执行完才能成功下单,需要考虑网络抖动等影响,还有雪崩的现象——>同步通信会产生不稳定的影响导致用户体验较差(41条消息) Dubbo_Fairy要carry的博客-CSDN博客RestTempate封装通信地址;dubbo;Feign采用 消息队列,利用异步通信的方式减少网络通信所造成的影响,下单不需要关注它是否成功(通过分布式事务seata来处理事务失败的现象)——>原创 2022-10-15 01:53:48 · 430 阅读 · 0 评论 -
幂等性的处理
什么是幂等性?幂等性的处理。转载 2022-10-05 00:56:44 · 140 阅读 · 0 评论 -
RabbitMQ进行削峰限流
BasicProperties :需要注意的是BasicProperties.deliveryMode,0:不持久化 1:持久化 这里指的是消息的持久化,配合channel(durable=true),queue(durable)可以实现,即使服务器宕机,消息仍然保留。消息中间件降低了进程间的耦合性,当一个处理消息的进程挂掉后,加入消息中间件的消息仍然可以在系统恢复后重新处理。服务端完成秒杀业务逻辑(库存检查,库存冻结,余额检查,余额冻结,订单生成,余额扣减,库存扣减,生成流水,余额解冻,库存解冻)转载 2022-10-05 00:48:04 · 887 阅读 · 0 评论 -
MQ集群配置
目录集群分类普通集群介绍普通集群部署 镜像集群 集群模式介绍以及特征: 那么,问题来了,主节点是如何将队列备份到其他节点上呢?仲裁队列介绍 基于Java代码实现仲裁队列 镜像集群很像es集群中的分片集群,每个节点都有其他节点的备份,保证了数据的一致性(CP)(31条消息) elasticsearch搭建集群_Fairy要carry的博客-CSDN博客 然后我们还学了redis的分片集群:与之区别呢,redis有点像CurrentHashMap,弄了多个master主节点,相当于分段锁的机制,每个mas原创 2022-06-20 23:56:58 · 892 阅读 · 1 评论 -
MQ-消息堆积问题
场景:当生产者发送消息的速度>消费者处理速度,那么就会导致消息堆积,当储存达到达上限就会引发死信问题,消息变为死信就会被丢弃到死信队列中,这样是很不友好的;(30条消息) MQ-消息延迟_Fairy要carry的博客-CSDN博客 解决:从消费者的角度1.增加更多消费者,增加消费速度(也就是WorkQueue模式,多个消费者绑定一个队列)(30条消息) SpringAMQP_Fairy要carry的博客-CSDN博客2.在消费者中开启线程池增加处理速度(但是消耗CPU资源,适合那种耗时较长的任务)从生产者角原创 2022-06-20 11:19:50 · 1852 阅读 · 0 评论 -
MQ-消息延迟
当一个消息队列满足以下情况则可以称为死信(dead letter)一般来说,消息成为死信就会被我们丢弃,但是有了死信交换机就会变得不一样其实呢,所谓的死信交换机就是一个普通交换机,只不过是某个队列用dead-letter-exchange这个属性绑定到一起了,当这个队列出现了死信,就会丢到我们这个死信交换机里了,就有点像垃圾桶一样的了。当一个消息被消费者拒绝,变成了死信拒绝有三种:1.配置声明,2.消息的过期,3.消息的堆积 TTL,也就是Time-To-Live。如果一个队列中的消息TTL结束仍未消费,则原创 2022-06-20 09:41:47 · 2639 阅读 · 1 评论 -
RabbitMQ的高级特性(消息可靠性)
目录MQ常见问题 消息可靠性问题生产者消息确认如何确定消息唯一性:Publisher发送消息的配置1.全局配置一个配置类,完成对消息由交换机发送到队列的监听 2.发送消息,指定消息的id,消息的ConfirmCallbackSpringAMQP处理消息确认的几种情况:MQ把消息弄丢的处理消费者消息的确认我们可以利用Spring的retry机制 消费者消息处理失败策略 消息可靠性问题:需要保证消息一定要被消费延迟消息问题:消息延迟投递的实现,比如多久之后开始被处理,后面还会滋生消息堆积问题消息堆积问题:百万消原创 2022-06-19 17:42:25 · 833 阅读 · 0 评论 -
elasticsearch-数据同步
目录方案一:同步调用方案二:异步调用方案三:监听binlog利用MQ实现mysql与elasticsearch数据同步Hotel-Admin发送消息Hotel-Demo接收消息,完成对应操作在微服务情况下,负责酒店管理(对数据CRUD,操作mysql)的与负责酒店搜索(elasticsearch)的业务可能在两个不同的服务上,如何实现数据同步?方案一:同步调用缺点: 耦合较高,导致耗时较长,因为你酒店管理的服务除了数据库的操作,还有调用酒店搜索服务,然后...原创 2022-05-26 02:34:52 · 1827 阅读 · 0 评论 -
SpringAMQP
介绍:好处:什么connection:消息队列的连接、channel:服务发送接收消息的通道、Queue:消息队列——>这些你都不需要自己编写入门案例:消息发送与消息接收消息发送package cn.itcast.mq.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.amqp.rabbit.annotation.EnableRabbit...原创 2022-05-15 12:39:36 · 934 阅读 · 0 评论 -
RabbitMQ入门-02
安装介绍运行镜像产生MQ容器进行访问:发布者Publisher会把消息->给到交换机,交换机路由给到指定的消息队列,queue把消息保存起来,然后消费者consumer会从queue将消息拿出来VirtualHost:各个虚拟主机是不一样的,相当于对操作进行分组——>不同用户访问是不同的虚拟主机,体现隔离性;常见消息模型HelloWorld简单队列模型...原创 2022-05-13 16:22:02 · 318 阅读 · 0 评论 -
初识MQ-01
目录同步调用:异步调用初识MQ同步调用:比如这里的支付服务,需要等待订单服务、短信服务...执行完毕才能执行,这样支付整个流程完毕需要500ms然后如果订单、仓储等其中一个服务挂掉了,那么支付服务请求请求不了,挂掉的服务越来越多,级联失败;——>服务提供者出现问题,那么整个微服务都会出现故障;资源浪费:消费者需要等待服务提供者响应,不能干其他事情只能干等;耦合度较高:每次加入新的需求,还需要动原来的代码——>比如:订单加了一个用户积分...原创 2022-05-12 22:38:26 · 377 阅读 · 0 评论