![](https://img-blog.csdnimg.cn/20200102103316453.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
手写中间件之——并发框架
码云GVP项目作者,京东中间件工程师一行行实战如何写中间件。包括并发框架、热key探测框架等分布式、高并发场景实用中间件。
该专栏主要讲如何编写一个并发框架,解决任意的多线程并行、串行、阻塞、依赖、回调的并发框架,可以任意组合各线程的执行顺序,带全链路执行结果回调。多线程编排一站式解决方案。
天涯泪小武
开源贡献者,有代码洁癖。京东coder。
展开
-
手写中间件之——并行框架(4 相互依赖模型的建立)
建议学习时,打开代码https://gitee.com/tianyalei/asyncTool 对着代码看。上一篇主要讲了如何实现异步回调,简单回忆一下是如何实现的。java的future的get方法是同步阻塞的,无法达到任务完成后主动回调的目的。netty的future是可以做到回调的,通过addListener的方式,但是为什么addListener后就能回调了,也是通过封装执行单元和回...原创 2020-01-22 13:46:00 · 6318 阅读 · 23 评论 -
手写中间件之——并行框架(3 异步回调如何实现)
上一篇主要讲了任务的编排该如何实现,包括串、并、串并结合。建议一定要手写个小demo去尝试各种基本组合。这一篇主要是讲该如何实现异步回调。如果之前有用过netty的应该知道,netty里大量充斥着“回调”,各种addListener,将各种耗时任务变成了异步带回调的模式。回调是个很有用的模式,譬如我的主线程执行过程中,要执行一个非常耗时的逻辑,自然我们会想到用异步的形式去完成这个耗时逻...原创 2020-01-07 10:04:23 · 5022 阅读 · 21 评论 -
手写中间件之——并行框架(2 任务编排顺序如何选型和实现)
这一篇我们就要开始手写这个并行框架了。做任何一个项目,都要做的事情都是先定大框架,后拆解任务。那么这个并发框架,要完成上一篇讲的那些所有任务,该如何定大框架呢,如何选型呢?如果大家仔细看了上一篇文章,可以看到该框架的难点和重点,主要有两点,分别是任务的顺序编排和任务结果的回调。如何做任务顺序编排依次来看一下各个基本场景1 全串行这种是最简单的,依次串行即可。假如...原创 2020-01-03 17:39:03 · 6239 阅读 · 3 评论 -
手写中间件之——并行框架(1 并行框架的应用场景和需求)
我们为什么会需要一个带任务顺序编排的并行框架1 复杂的微服务系统间调用经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。譬如用户请求“我的订单”,后台在收到请求后,就需要去调用用户详情rpc、商品详情rpc、库存rpc、优惠券rpc等等很多个服务。有些服务是可以并行去请求的,但有些服务...原创 2020-01-02 11:28:58 · 13667 阅读 · 17 评论