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

嘮叨

最近一直在開發(fā)一個(gè) mini rpc 系統(tǒng),支持一些 rpc 常見的功能,例如客戶端負(fù)載均衡,故障轉(zhuǎn)移,熔斷,自適應(yīng)限流,多通道流量分配,動(dòng)態(tài)配置等等。

不過也總算是開發(fā)完了,目前已經(jīng)在線上跑起來了。

好了,總算有點(diǎn)點(diǎn)時(shí)間來維護(hù)一下我的 Lu-Rpc 了。說實(shí)話,在開發(fā)那個(gè)項(xiàng)目的期間,還是有很多思考的,一些平時(shí)自己看源碼不重視的地方,在真正寫代碼的時(shí)候,需要考慮的有很多。

例如領(lǐng)域模型的生命周期管理,日志格式,異常處理,配置管理,等等這些“雜事”吧,請(qǐng)?jiān)试S我稱之為雜事。在框架開發(fā)中,我們似乎更關(guān)注核心功能的實(shí)現(xiàn),但是這些打雜的活也是必不可少的。例如生命周期的管理,如果沒有管理好系統(tǒng)資源,當(dāng)應(yīng)用關(guān)閉后,還有很多資源無法釋放,日志就更不用說了,日志里要包含上下文信息,參數(shù),結(jié)果,異常類型,環(huán)境信息,最好包含 ip,port , JDK version,系統(tǒng) load,等等。配置呢?當(dāng)然也是重要的,這次我參照 hystrix 的配置寫另一個(gè)簡(jiǎn)單的動(dòng)態(tài)配置,可以靈活管理框架里配置。

好了,嘮叨了這么多,主要還是講一些自己在這次將近一個(gè)的框架開發(fā)中的心得吧,寫了大概 1 萬行代碼,一個(gè)人。時(shí)間比較緊,junit test case 寫的不多,主要跑通了流程就基本認(rèn)為 ok 了。這大概就是項(xiàng)目小的好處吧。

Lu-Rpc 增加了哪些功能?

Lu-Rpc 的初心是為了初學(xué)者,因此此次增加的功能只有核心功能:

  1. 類似 hystrix 的熔斷功能,簡(jiǎn)單易懂,無鎖設(shè)計(jì)。
  2. 類似 hystrix 的信號(hào)量限流功能,但是和 hystrix 不同的是,他是動(dòng)態(tài)變化的。當(dāng)然,這個(gè)信號(hào)量也是自己實(shí)現(xiàn)的,無鎖設(shè)計(jì)。
  3. 支持內(nèi)部隊(duì)列削峰。在限流的時(shí)候,需要搶信號(hào)量,為了防止流量高峰時(shí)的毛刺,寫了一個(gè)簡(jiǎn)單的緩沖區(qū),用戶緩沖流量。支持超時(shí)。
  4. 為了搞定動(dòng)態(tài)配置,參考 hystrix 的配置模塊設(shè)計(jì),寫了一個(gè)配置模塊,能夠很方便的管理框架的亂七八糟的配置。

Summary

年底了,馬上又要忙起來了,又沒時(shí)間維護(hù)了。??

不管怎么樣,歡迎大家 star ?。?!爭(zhēng)取過 100 star,我就滿足了,哈哈!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容