一、抵御流量洪峰,
整体架构设计如下:
1、nginx+tomcat
2、tomcat controller取到请求后向rocketmq 发送一个msg,将msg id返回给app,同时在redis里缓存msg状态为init(设置定时时间,时间到后清除)
3、client(app/h5/小程序) 通过msg id,定时向server获取msg处理状态
(init时 画圈,没有时返回繁忙,fail时返回处理失败)
4、server向redis查询处理的结果,返回 init/null/fail等状态
------ 后台服务层
1、原来controller里面的逻辑,改为使用rocketmq的消息来驱动
2、processor(原来的controller里面的逻辑) 取出消息,rpc调用后台的服务,将结果设置到redis
区别:1、原来是流量直接打到tomcat,瞬间请求包太多时,会导致tomcat拒绝服务(外部看起来像是down了)
2、现在用rocketmq先缓存消息(至少百万级别,不放心可以使用集群),对于真正的服务处理而言是异步的。
processor可以自己控制消息消费的速度(并发程度),避免整个后台被撑爆
二、实现跨进程、跨数据库的一致性事物
0、msg中带有一个业务的msgId
1、本serv处理完后,保证消息发到rocketmq
2、每个serv进程(分布式)监听自己关心的消息,并消费消息(根据msgid 保证幂等性)
3、serv本地除了业务数据,也要记录消息的处理状态
4、这样正常情况下会执行到最后,出现异常时根据各个serv本地的状态人工补单
三、服务间异步调用
适用情况(10年前,mmo server就已经用这种方式保证扩展性和灵活性):
1、内部的服务非常多(拆的很细)
2、一个serv处理完后有很多的后续serv(甚至不知道有多少个)
实现方式:
1、定义全局消息,比如开始处理、检查完账户有效性、检查完资金、检查完基金状态、支付完成、发起退款、退款完成……
2、每个serv自己做完了,就发出对应的消息
3、后续的serv监听自己关心的消息
整个系统基于宏观的消息来异步组织
相关推荐
消息队列 MQ 产品的使用场景包括: * 电子商务平台:消息队列 MQ 产品可以用于电子商务平台中,提供高效的消息处理能力。 * 社交媒体:消息队列 MQ 产品可以用于社交媒体平台中,提供高效的消息处理能力。 * 游戏...
3. 消息队列MQ专业版的应用场景 消息队列MQ专业版可以应用于以下场景: * 企业级应用:消息队列MQ专业版可以用于企业级应用,提供高效、可靠、安全的消息队列服务。 * 云计算应用:消息队列MQ专业版可以用于云计算...
消息队列MQ专业版架构主要由Producer、Broker、Consumer三个组件组成。Producer负责将消息发送到Broker,Broker负责存储和forward消息,Consumer负责从Broker中订阅和消费消息。 五、消息队列MQ专业版开发指南 本...
阿里云专有云企业版消息队列MQ专业版开发指南 ...阿里云专有云企业版消息队列MQ专业版开发指南旨在为开发人员提供指导和帮助,以便更好地使用消息队列MQ专业版构建高性能、可靠、可扩展的应用场景。
阿里云专有云Enterprise版消息队列MQ专业版技术白皮书 阿里云专有云Enterprise版消息队列MQ专业版技术白皮书是...本文档还包括了目录、法律声明、通用约定等内容,旨在帮助用户更好地理解和使用消息队列MQ专业版产品。
阿里云 专有云企业版 V3.5.2 消息队列MQ...阿里云提供了补充说明,旨在帮助用户更好地理解和使用消息队列MQ专业版。 本文档为用户提供了全面、详细的消息队列MQ专业版运维指南,旨在帮助用户快速了解和使用该服务。
本文档为阿里云专有云企业版消息队列MQ铂金版的用户指南,旨在帮助用户快速上手使用消息队列MQ铂金版。该指南涵盖了消息队列MQ铂金版的基本概念、安装和配置、使用指南、故障排除等方面的内容。 法律声明 阿里云...
3. 在配置和使用消息队列MQ铂金版时,请注意遵守相关的安全规定,避免泄露敏感信息。 目录 本文档还包括以下几个部分: 1. 法律声明 2. 通用约定 3. 什么是消息队列MQ 4. 功能特性 5. 使用注意事项 6. 目录 本...
3. 通用约定是阿里云提供的一些通用的格式说明和约定,包括警示信息、警告信息、说明信息等,这些信息旨在帮助用户正确地理解和使用消息队列MQ铂金版产品。 4. 任务概述是阿里云提供的一些任务概述信息,包括消息...
在使用消息队列MQ铂金版时,用户需要了解以下几个注意事项: * 重置操作将丢失用户配置数据。 * 重启操作将导致业务中断,恢复业务所需时间约10分钟。 本文档旨在帮助用户了解如何使用消息队列MQ铂金版,包括其...
【MQ消息队列实例】 MQ,全称Message Queue(消息队列),是一种中间件,用于在分布式系统中存储和转发消息。它允许应用程序之间通过异步通信方式交换数据,提高系统的可扩展性和可靠性。在Java中,我们可以使用...
要使用阿里云消息队列MQ,开发者需要在项目中引入相应的Maven依赖,并在阿里云控制台上创建和管理Topic、ProducerId、ConsumerId、AccessKey和SecretKey。此外,确保订阅一致性,即所有属于同一Consumer ID的实例...
消息队列MQ(Message Queue Middleware)是分布式系统中不可或缺的一部分,它主要负责在不同组件之间传递消息,解耦系统并提高整体性能。本资源包涵盖了三个主流的消息队列技术:Kafka、RabbitMQ和Zookeeper,以及...
通过以上分析,我们可以看出“1 消息队列MQ+多线程任务+业务处理”这一主题涉及到的技术深度和广度,它涵盖了软件设计中的并发处理、消息传递、系统优化等多个重要方面。在实际开发中,熟练掌握这些知识点对于提升...
该文档旨在为用户提供详细的操作指南,以帮助用户正确地使用消息队列MQ专业版产品。 一、法律声明 阿里云在法律声明中明确了用户阅读或使用本文档的相关义务和限制。用户在阅读或使用本文档之前,应当仔细阅读、...
XXL-MQ是一款专为Java开发设计的轻量级分布式消息队列系统,它...对于压缩包文件"xxuxeli-xxl-mq-0cacda4",其中可能包含了XXL-MQ的源代码、文档、示例项目等内容,可以帮助开发者更深入地理解和使用这款消息队列系统。
综上所述,阿里云专有云企业版V3.8.0的消息队列MQ技术白皮书是企业级用户理解和使用MQ服务的重要参考资料,涵盖了产品设计原理、使用场景、架构细节和技术特性等多个方面,为企业构建高效、可靠的分布式系统提供了...
阿里云专有云Enterprise版消息...阿里云专有云Enterprise版消息队列MQ铂金版运维指南是一个非常详细和全面的指南,涵盖了产品的各个方面,旨在帮助用户更好地理解和使用阿里云专有云Enterprise版消息队列MQ铂金版产品。
使用消息队列MQ专业版,用户可以轻松地实现消息队列的管理和维护,提高业务效率和可靠性。 四、使用指南 本文档提供了详细的使用指南,旨在帮助用户快速上手消息队列MQ专业版。用户可以通过阅读本文档,了解消息...
2. **产品架构**:阿里云消息队列MQ的架构可能包括多个组件,如消息生产者、消息消费者、消息队列、以及管理和监控工具。生产者负责发布消息到队列,消费者则从队列中消费消息。系统还可能包含高可用的集群和分布式...