![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列
INC随我
这个作者很懒,什么都没留下…
展开
-
创建一个基于redis的id生成器
参考文章:https://blog.csdn.net/hengyunabc/article/details/44244951https://www.jianshu.com/p/955909e1bd71https://tech.meituan.com/2017/04/21/mt-leaf.html参考项目:https://github.com/hengyunabc/redis-id-generator值。evalsha教程:https://www.runoob.com/redis/scripti原创 2020-05-24 22:28:36 · 1656 阅读 · 0 评论 -
Kafka初试
二、安装Kafka安装Java安装Zookeeper启动命令: zkServer.sh start停止命令: zkServer.sh stop安装Kafka启动命令: kafka-server-start.sh config/server.properties启动命令: kafka-server-stop.sh config/server.properties三、代码实践添加Maven依赖<dependency> <groupId>org原创 2020-05-24 22:30:19 · 151 阅读 · 0 评论 -
Springboot集成RabbitMQ
一、什么是RabbitMQRabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。二、添加依赖<dependency> <groupId>org.springframework....原创 2019-08-13 11:38:03 · 160 阅读 · 0 评论 -
RabbitMQ事务以及confirm机制
本文是参考下面这篇博客然后进行复现浓缩后的总结https://www.cnblogs.com/vipstone/p/9350075.html正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题?RabbitMQ有两种方式来解决这个问题:通过AMQP提供的事务机制实现;使用发送者确认模式...原创 2019-08-13 11:39:43 · 681 阅读 · 0 评论 -
如何保证消息消费的幂等性
幂等性概念及业界主流解决方案幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...业界主流的幂等性操作:唯一ID + 指纹...原创 2019-10-07 22:17:24 · 336 阅读 · 0 评论 -
RabbitMQ生产端可靠性投递
对于消息的生产端的可靠投递,我们常见的解决方案有两种1.消息落库,对消息状态进行打标2.消息的延迟投递,做二次确认,回调检查1、消息落库,对消息状态进行打标上面图片为消息落库,对消息状态进行打标的常见步骤(状态0表示已发送,1表示已消费,2表示失败)首先将将要发送的数据持久化到BIZ数据库中,并且创建一个存储着消息状态的数据持久化到MSG数据库中。将数据发送至MQ。消费者接收...原创 2019-10-07 22:19:49 · 276 阅读 · 0 评论 -
消费端限流、重回队列、TTL以及死信队列
什么是消费端的限流?假设一个场景,首先,我们Rabbitmq服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况:巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理这么多数据!RabbitMQ提供了一种qos (服务质量保证)功能,即在非自动确认消息的前提下,如果一定数目的消息(通过基于consume或者channel设置Qos的值)未被确认前,不进行消费新的消...原创 2019-10-07 22:20:38 · 177 阅读 · 0 评论