我掏出这个多线程轮子,面试官直接全体起立
又到了项目推荐专栏,今天推荐的还是轮子类项目,由京东零售开源的一款并行框架 asyncTool,“该框架目前正在京东 App 后台接受苛刻、高并发、海量用户等复杂场景业务的检验测试”,霍,瞧这含金量:
整体来看代码量不是很多,毕竟就是一个工具库,不过能够有效且优雅地解决问题,那就是个好项目,值得学习,其核心是 CompletableFuture
类的使用,小伙伴们需要有相关的先验知识。
项目地址:
- Gitee:https://gitee.com/jd-platform-opensource/asyncTool (opens new window)
- QuickStart:https://gitee.com/jd-platform-opensource/asyncTool/blob/master/QuickStart.md (opens new window)
- 教程地址:
上手难度还是有的,作者这个教程不是从 0 到 1 的教程,并且轮子类项目也没有业务类项目好理解,不过整体工作量比较少,多花点时间总是可以搞懂的~
项目简介:
在微服务系统中,经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。
譬如用户请求“我的订单”,后台在收到请求后,就需要去调用用户详情 RPC、商品详情 RPC、库存 RPC、优惠券 RPC 等等很多个服务。有些服务是可以并行去请求的,但有些服务是依赖于某个服务的返回值的(如查库存、优惠券,就依赖于商品详情回复到达后才能去请求)。
AsyncTool 就是这样一个用来解决任意的多线程并行、串行、阻塞、依赖、回调的并行框架。可以任意组合各线程的执行顺序,并且带有全链路执行结果回调。是多线程编排一站式解决方案。具体来说,AsyncTool 针对并发场景下可能存在的需求封装了具体的解决方案:
- 任意编排、执行顺序的强依赖和弱依赖
- 每个执行结果的回调
- 依赖上游的执行结果作为入参
- 全组任务的超时
- 高性能、低线程数:该框架全程无锁
🎁 公众号

各位小伙伴大家好呀,叫我小牛肉就行,目前在读东南大学硕士,上方扫码关注公众号「飞天小牛肉」,与你分享我的成长历程与技术感悟~
帮助小牛肉改善此页面 (opens new window)
Last Updated: 2023/04/14, 12:05:12