再谈消息队列技术
上周,我们举办了第二届技术沙龙,我这边主要演讲了消息队列技术的议题,现分享给大家: 在我们团队内部,随着消息应用中心(任务中心)的广泛应用,有时候我们感觉不到消息队列的存在,但这不影响消息队列在高可用、分布式、高并发架构下的核心地位。 消息队列都应用到了哪些实际的应用场景中? 一、再谈消息队列的应用场景 异步处理:例如短信通知、终端状态推送、App推送、用户注册等 数据同步:业务数据推送同步 重试补偿:记账失败重试 系统解耦:通讯上下行、终端异常监控、分布式事件中心 流量消峰:秒杀场景下的下单处理 发布订阅:HSF的服务状态变化通知、分布式事件中心 高并发缓冲:日志服务、监控上报 但是,我们对消息队列的底层技术和原理还是不了解,那么我们马上开始吧… 二、消息队列的一些基本概念和简单原理 1. Broker Broker的概念来自与Apache ActiveMQ,通俗的讲就是MQ的服务器。 2. 消息的生产者、消费者 消息生产者Producer:发送消息到消息队列。 消息消费者Consumer:从消息队列接收消息。 3. 点对点消息队列模型 消息生产者向一个特定的队列发送消息,消息消费者从该队列中接收消息; 消息的生产者和消费者可以不同时处于运行状态。 每一个成功处理的消息都由消息消费者签收确认(Acknowledge)。如图: 4. 发布订阅消息模型 -Topic