容灾方案:Retry 和 Fallback 该怎么抉择?(下)

简介: 容灾方案:Retry 和 Fallback 该怎么抉择?(下)

3. 设计&扩展

3.1 核心设计

整体流程如下:

  1. ActionAspect 从 @Action 中读取配置信息,将请求类型绑定到线程上下文
  2. 然后执行正常业务逻辑
  3. 当调用 @SmartFault 注解的方法时,会被 SmartFaultMethodInterceptor 拦截器拦截

  1. 拦截器通过 ActionTypeProvider 获取当前的 ActionType
  1. 根据 ActionType 对请求进行路由
  2. 如果是 COMMAND 操作,将使用 RetryTemplate 执行请求,在发生异常时,通过重试配置进行请求重发,从而最大限度的获得远程结果
  3. 如果是 QUERY 操作,将使用 FallbackTemplate(重试次数为0的 RetryTemplate)执行请求,当发生异常时,调用 fallback 方法,执行配置的 recover 方法,直接使用返回结果
  4. 获取远程结果后,执行后续的业务逻辑
  5. 最后,ActionAspect 将 ActionType 从线程上下文中移除

4. 项目信息

项目仓库地址:https://gitee.com/litao851025/lego

项目文档地址:https://gitee.com/litao851025/lego/wikis/support/smart-fault



相关文章
|
Linux iOS开发 UED
探索Qt折线图之美:一次详尽的多角度解析
探索Qt折线图之美:一次详尽的多角度解析
2512 0
|
Linux 编译器 C语言
Linux(3)Device Tree概念1(上)
Linux(3)Device Tree概念1
381 0
|
机器学习/深度学习 自然语言处理 搜索推荐
预训练的词嵌入(Word Embedding)
预训练的词嵌入(Word Embedding)
582 2
|
11月前
|
缓存 Linux
linux 手动释放内存
在 Linux 系统中,内存管理通常自动处理,但业务繁忙时缓存占用过多可能导致内存不足,影响性能。此时可在业务闲时手动释放内存。
544 17
|
9月前
|
人工智能 IDE 测试技术
通义灵码2.0 - AI 程序员: AI 编程新时代的卓越助力
通义灵码是一款强大的AI编程助手,尤其在单元测试自动生成方面表现出色。它通过简化操作流程,快速生成覆盖广泛、质量较高的测试用例,支持直接编译与运行,显著提升开发效率。相比人工编写,通义灵码能大幅缩短时间成本,并更全面地覆盖边界和异常情况,但特定业务逻辑仍需人工补充。作为开发者的好帮手,它助力高效完成高质量单元测试,推动软件开发迈向新台阶。
26970 84
搭建一个普通的网站需要多少费用?
用户如果需要搭建一个普通的网站大概需要多少钱?网站搭建费用一般分为域名、服务器/虚拟主机、网站制作、设计和维护费用。费用在1000-3000是比较常见的,建站主要以PageAdmin CMS系统为主。
1888 2
|
人工智能 Oracle 数据可视化
低代码开发平台权威推荐:创新开发、领跑市场!
Gartner推荐的6款低代码平台包括Zoho Creator、Mendix、Oracle、Appian、Retool和Quickbase。Zoho Creator在低代码领域有显著地位,连续多年入选Gartner魔力象限,其特点是快速定制、灵活的定制能力、AI辅助、合规与安全以及丰富的报表功能。Mendix则是一站式低代码平台,强调可视化开发和数据集成,但学习曲线较陡。Oracle平台提供预构建组件,快速开发且支持可视化,但私有部署选项有限。Appian以拖拽式构建和流程自动化为亮点,但可能无法满足所有高度定制需求。Retool以其强大的组件库和主流服务集成吸引用户,
375 0
|
缓存 JSON 前端开发
什么是请求头?常见的请求头有哪些?
请求头(Request Headers)是在HTTP协议中用于传递关于请求的额外信息的部分。它包含了客户端(通常是浏览器或应用程序)与服务器之间进行通信所需的元数据
8111 1
|
存储 关系型数据库 MySQL
项目开发中的时区问题汇总
项目开发中的时区问题汇总
362 0
|
项目管理 开发工具 git
[集中式] SVN的安装与详细使用教程
[集中式] SVN的安装与详细使用教程
944 0