美文网首页
Lu-Rpc 更新,支持熔断,限流

Lu-Rpc 更新,支持熔断,限流

作者: 莫那一鲁道 | 来源:发表于2018-12-15 12:31 被阅读475次

    唠叨

    GitHub 地址: https://github.com/stateIs0/Lu-Rpc

    最近一直在开发一个 mini rpc 系统,支持一些 rpc 常见的功能,例如客户端负载均衡,故障转移,熔断,自适应限流,多通道流量分配,动态配置等等。

    不过也总算是开发完了,目前已经在线上跑起来了。

    好了,总算有点点时间来维护一下我的 Lu-Rpc 了。说实话,在开发那个项目的期间,还是有很多思考的,一些平时自己看源码不重视的地方,在真正写代码的时候,需要考虑的有很多。

    例如领域模型的生命周期管理,日志格式,异常处理,配置管理,等等这些“杂事”吧,请允许我称之为杂事。在框架开发中,我们似乎更关注核心功能的实现,但是这些打杂的活也是必不可少的。例如生命周期的管理,如果没有管理好系统资源,当应用关闭后,还有很多资源无法释放,日志就更不用说了,日志里要包含上下文信息,参数,结果,异常类型,环境信息,最好包含 ip,port , JDK version,系统 load,等等。配置呢?当然也是重要的,这次我参照 hystrix 的配置写另一个简单的动态配置,可以灵活管理框架里配置。

    好了,唠叨了这么多,主要还是讲一些自己在这次将近一个的框架开发中的心得吧,写了大概 1 万行代码,一个人。时间比较紧,junit test case 写的不多,主要跑通了流程就基本认为 ok 了。这大概就是项目小的好处吧。

    Lu-Rpc 增加了哪些功能?

    Lu-Rpc 的初心是为了初学者,因此此次增加的功能只有核心功能:

    1. 类似 hystrix 的熔断功能,简单易懂,无锁设计。
    2. 类似 hystrix 的信号量限流功能,但是和 hystrix 不同的是,他是动态变化的。当然,这个信号量也是自己实现的,无锁设计。
    3. 支持内部队列削峰。在限流的时候,需要抢信号量,为了防止流量高峰时的毛刺,写了一个简单的缓冲区,用户缓冲流量。支持超时。
    4. 为了搞定动态配置,参考 hystrix 的配置模块设计,写了一个配置模块,能够很方便的管理框架的乱七八糟的配置。

    Summary

    年底了,马上又要忙起来了,又没时间维护了。☹️

    不管怎么样,欢迎大家 star !!!争取过 100 star,我就满足了,哈哈!

    GitHub 地址: https://github.com/stateIs0/Lu-Rpc

    微信:

    相关文章

      网友评论

          本文标题:Lu-Rpc 更新,支持熔断,限流

          本文链接:https://www.haomeiwen.com/subject/ctxahqtx.html