BFF层聚合查询服务异步改造及治理实践 | 京东云技术团队

💡 原文中文,约3400字,阅读约需9分钟。
📝

内容提要

本文讨论如何通过依赖现有框架和环境的能力,从代码层面系统化地实现相关治理规范,以实现个性化商品推荐。实现方法包括io调用抽象模板、委托代理、执行器选型、hystrix适配concrete动态配置、hystrix线程池上下文传递改造、提供统一await future工具类等。文章提醒接口设计者应该更高一级思考问题,避免接口性能问题。

🎯

关键要点

  • 通过BFF层对不同理财产品进行个性化推荐,聚合底层服务以保障TP99和可用率。
  • 商品推荐接口依赖多个上游服务,存在强耦合和链路不稳定的问题。
  • 改造目标是增加弱依赖比例,方便异步加载,减少链路失败的风险。
  • 技术改造采用@Async注解,但存在治理方面的问题,如线程池资源泛滥和降级机制复杂。
  • 实现io调用抽象模板,统一io调用层封装规范,提供默认配置。
  • 委托代理用于增强io封装,实现调用前后处理和降级方法。
  • 选择hystrix作为执行器,支持线程池动态管理和熔断降级机制。
  • hystrix适配动态配置,支持所有hystrix配置项的缓存和管理。
  • 实现hystrix线程池上下文传递,监控线程池状态并定期上报。
  • 提供统一的await future工具类,方便处理异步结果。
  • 增加jsf过滤器实现跨应用请求id传递和日志打印功能。
  • 通过简单的io调用封装支持异步回调和请求级别熔断。
  • 强调接口设计者应更高一级思考问题,以避免接口性能问题。
➡️

继续阅读