
MQ
装满哈希的Map
从事过金融行业、保险行业、实时调度引擎。
发表过数十篇国家级软件发明专利,写过每天可以处理亿级流量服务中间件,开发过可以处理百万QPS并发的系统,目前复负责全世界最大的即时配送异构计算的调度引擎架构开发。
曾与NVIDIA、Intel技术专家深入交流。
喜欢摄影、喜欢做菜、喜欢吃肉、喜欢数码产品、喜欢音乐、喜欢电影。
展开
-
关于MQ的几件小事(六)消息积压在消息队列里怎么办
1.大量消息在mq里积压了几个小时了还没解决场景:几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上很晚,10点多,11点多。线上故障了,这个时候要不然就是修复consumer的问题,让他恢复消费速度,然后傻傻的等待几个小时消费完毕。这个肯定不行。一个消费者一秒是1000条,一秒3个消费者是3000条,一分钟是18万条,1000多万条。所以如果你积压了几百万到上千万的数据,即使消费者恢复了,也需要大概1小时的时间才能恢复过来。解决方案:”这种时候只能操作临时扩容,以更快的速度去消费数据原创 2020-11-05 17:28:10 · 1594 阅读 · 0 评论 -
关于MQ的几件小事(四)如何保证消息不丢失
1.mq原则数据不能多,也不能少,不能多是说消息不能重复消费,这个我们上一节已解决;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业务,那么这种场景是一定不能丢失数据的。2.丢失数据场景丢数据一般分为两种,一种是mq把消息丢了,一种就是消费时将消息丢了。下面从rabbitmq和kafka分别说一下,丢失数据的场景,(1)rabbitmqA:生产者弄丢了数据生产者将数据发送到rabbitmq的时候,可能在传输过程中因为网络等问题而将数据弄丢了。B:rabbitmq自己丢原创 2020-11-05 17:26:47 · 365 阅读 · 0 评论 -
关于MQ的几件小事(三)如何保证消息不重复消费
1.幂等性幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现.简单来说,幂等性就是一个数据或者一个请求,原创 2020-11-05 17:25:18 · 510 阅读 · 0 评论 -
关于MQ的几件小事(二)如何保证消息队列的高可用
1.RabbitMQ的高可用RabbitMQ基于主从模式实现高可用。RabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式。(1)单机模式:单机模式就是demo级别的,生产中不会有人使用。(2)普通集群模式普通集群模式就是在多台机器上启动多个rabbitmq实例,每个机器启动一个。但是创建的queue只会放在一个rabbitmq实例上面,但是其他的实例都同步了这个queue的元数据。在你消费的时候,如果连接到了另一个实例,他会从拥有queue的那个实例获取消息然后再返回给你。这种方式转载 2020-11-05 17:09:43 · 172 阅读 · 2 评论 -
关于MQ的几件小事(一)消息队列的用途、优缺点、技术选型
1.为什么使用消息队列?(1)解耦:可以在多个系统之间进行解耦,将原本通过网络之间的调用的方式改为使用MQ进行消息的异步通讯,只要该操作不是需要同步的,就可以改为使用MQ进行不同系统之间的联系,这样项目之间不会存在耦合,系统之间不会产生太大的影响,就算一个系统挂了,也只是消息挤压在MQ里面没人进行消费而已,不会对其他的系统产生影响。(2)异步:加入一个操作设计到好几个步骤,这些步骤之间不需要同步完成,比如客户去创建了一个订单,还要去客户轨迹系统添加一条轨迹、去库存系统更新库存、去客户系统修改客户的状转载 2020-11-05 17:07:46 · 326 阅读 · 0 评论