BFF层聚合查询服务异步改造及治理实践 | 京东云技术团队
💡
原文中文,约3400字,阅读约需9分钟。
📝
内容提要
本文讨论如何通过依赖现有框架和环境的能力,从代码层面系统化地实现相关治理规范,以实现个性化商品推荐。实现方法包括io调用抽象模板、委托代理、执行器选型、hystrix适配concrete动态配置、hystrix线程池上下文传递改造、提供统一await future工具类等。文章提醒接口设计者应该更高一级思考问题,避免接口性能问题。
🎯
关键要点
- 通过BFF层对不同理财产品进行个性化推荐,聚合底层服务以保障TP99和可用率。
- 商品推荐接口依赖多个上游服务,存在强耦合和链路不稳定的问题。
- 改造目标是增加弱依赖比例,方便异步加载,减少链路失败的风险。
- 技术改造采用@Async注解,但存在治理方面的问题,如线程池资源泛滥和降级机制复杂。
- 实现io调用抽象模板,统一io调用层封装规范,提供默认配置。
- 委托代理用于增强io封装,实现调用前后处理和降级方法。
- 选择hystrix作为执行器,支持线程池动态管理和熔断降级机制。
- hystrix适配动态配置,支持所有hystrix配置项的缓存和管理。
- 实现hystrix线程池上下文传递,监控线程池状态并定期上报。
- 提供统一的await future工具类,方便处理异步结果。
- 增加jsf过滤器实现跨应用请求id传递和日志打印功能。
- 通过简单的io调用封装支持异步回调和请求级别熔断。
- 强调接口设计者应更高一级思考问题,以避免接口性能问题。
➡️