自己設計乙個的輕量級的RPC框架 服務自動限流

2021-09-19 15:58:25 字數 1103 閱讀 5220

之前被各種事情耽擱了我的rpc框架,最近抽了一點時間繼續寫。上篇寫了服務的手動降級,這篇主要寫關於服務自動限流。

通常情況下無論是客戶端還是服務端都需要對於突發事件有相應的處理。

服務端:服務的降級和限流(面對突發的大流量,服務端的自我保護措施,例如直接停止服務或者1分鐘僅限10次呼叫)

客戶端:服務的容熔斷(面對頻繁超時等,客戶端自動的處理)

服務端需要初始化乙個map 儲存相對於的服務和呼叫次數

需要有乙個定時任務來觸發一段時間內將呼叫次數清空

服務端呼叫服務要對這個次數做限制,超出返回服務暫停等字眼

public static mapmap = new concurrenthashmap();
//在zk初始化服務列表之後觸發

//定時任務

呼叫5次之後

1分鐘之後

peewee 乙個輕量級的ORM 四

class database last insert id cursor,model parameters return type 最後乙個插入的記錄的那行的主鍵,不一定非得叫 id rows affected cursor return type 受影響的行數 create table model...

DI php寫乙個輕量級的容器

摘要 理解什麼是di ioc,依賴注入 控制反轉。兩者說的是乙個東西,是當下流行的一種設計模式。大致的意思就是,準備乙個盒子 容器 事先將專案中可能用到的類扔進去,在專案中直接從容器中拿,也就是避免了直接在專案中到處new,造成大量耦合。取而代之的是在專案類裡面增設 setdi 和getdi 方法,...

乙個輕量級AOP的實現(開源)

事先宣告,本專案參考aop in c 和園內大神張逸的文章,思路神馬的都不是自己的!為了讓專案的 看起來更乾淨,需要乙個aop!於是就實現了乙個非常簡單的,非常輕量級,有多輕量級呢?實現的aop叫做earthworm 蚯蚓,為什麼叫這個?因為它小,它會疏通!專案的本意也是這樣,所以就叫這個!命名空間...