随笔分类 -  消息队列

RabbitMQ入门
摘要:RabbitMQ是最常见的消息队列之一。支持异步消息、消息确认、集群部署。具有轻量便捷、开箱即用、部署简单的特点,有完善的命令行工具和UI管理平台来协助日常维护工作。同时RabbitMQ拥有多种语言的客户端,如:Java, .NET, PHP, Python, JavaScript, Ruby, G 阅读全文
posted @ 2019-10-25 18:25 Man-YAN 阅读(134) 评论(0) 推荐(0)
如何处理消息积压
摘要:除了消息的丢失,另一个消息队列常见的问题就是消息积压了。我们都知道,消息之所以会挤压是由于消费端的性能除了问题,导致消息的消费速度较低来不及处理上游发送的消息。这一章我们就来看一下,如果优化代码的性能,避免出现消息积压。 在使用消息队列的系统中,对于性能的优化,主要体现在生产者和消费者这一收一发两部 阅读全文
posted @ 2019-10-13 21:14 Man-YAN 阅读(2016) 评论(0) 推荐(0)
如何处理消费过程中的重复消息?
摘要:上一节的内容最后,我们提出了一个思考。如果消息确认响应在网络传输过程中丢失了,那么消息队列的服务端、客户端会认为消息没有被正确传递,从而尝试进行下一次发送。这时候就会产生一些重复消息,那么应该怎么处理这个问题呢? 一. 重复消息一定存在吗? 在MQTT协议中,给出了三种消息传递过程中能够提供的服务质 阅读全文
posted @ 2019-10-12 17:36 Man-YAN 阅读(981) 评论(0) 推荐(0)
如何确保消息的可靠性传输?
摘要:对于消息队列来说,最重要的事情就是要保障消息不丢失,这也是开发者最常遇到的问题。其实,现在主流的消息队列产品都提供了非常完善的可靠性消息传输机制,我们唯一要做的就是知道如何使用它,大部分线上数据丢失的问题都是由于配置不当引起的。 一. 检测消息丢失的方法 一个新上线的系统,各方面都不太稳定,需要一个 阅读全文
posted @ 2019-10-12 14:37 Man-YAN 阅读(1222) 评论(0) 推荐(0)
利用事务消息实现分布式事务
摘要:举一个电商的例子,用户在购物车中付款,会调用一个服务生成一条订单,并调用另一个服务将该商品从购物车中删除。这两个操作应该是原子性的,要么都成功,要么都失败,这就是事务要解决的问题。我们下面来谈谈事务的概念、分布式事务的复杂点和实现方式。 一. 事务 事务的四大特性ACID:原子性、一致性、隔离性、持 阅读全文
posted @ 2019-10-11 23:53 Man-YAN 阅读(765) 评论(0) 推荐(0)
消息队列模型
摘要:一. 队列 To 主题 程序员​常听这样一句话:好的架构不是设计出来的,而是演变出来的。 ​最初的消息队列就是一个严格意义上的队列。它的模型如下: ​如果有多个生产者往同一个队列里发送消息,那么消费者消费的就是所有生产者消息的合集,消息的顺序就是生产者发送消息的自然顺序。如果有多个消费者接收同一个消 阅读全文
posted @ 2019-10-11 02:03 Man-YAN 阅读(540) 评论(0) 推荐(0)
初识消息队列
摘要:一. Why MQ? 消息队列是软件开发中常见的技术,那么何时应该使用消息队列?或者说消息队列有哪些好处呢? 1. 异步处理 ​ ​你做过的服务有没有遇到过这种情况?只是简单的一个post请求添加一条数据,却不得不增加统计分析、短息提醒、微信提醒等等其他对用户来说不必要的处理?这个时候整个流程都是同 阅读全文
posted @ 2019-10-11 01:15 Man-YAN 阅读(135) 评论(0) 推荐(0)