mooon-agent以簡約的設計為主,力求各物件之間保持簡單的關係,盡量避免過度的傳遞,因此cagentthread成了核心。除此之外,還有幾個關鍵的設計點:
1、採用了可epollable的佇列,以保證訊息的實時上報
2、使用了狀態機,分別為傳送訊息的csendmachine和接收訊息的crecvmachine,保證所有過程是非同步非阻塞的,同時又使得**簡潔
3、對下行訊息處理的抽象,以達到通用的目的
4、使用了netint,使用得訊息網路位元組序問題迎刃而解
保證agent做好的前提:
1、充分的設計,追求物件間的關係最簡化
2、有限的設計,每個階段控制功能數,鄙棄一步到位的思想,比如上報心跳這個功能,那需要同時支援傳送簡單的心跳,也要支援傳送富心跳(附帶資料的心跳,如cpu使用率等),這樣做會導致第一版本難以收斂,會導致設計擴張
Kafka設計要點
1 利用os的pagecache 不在程序中維護cache,而是直接寫入磁碟,並定期重新整理到磁碟。使用程序cache的缺點 增加記憶體佔用量 程序重啟時要麼重建cache 很耗時 要麼以空cache執行 初始效能很差 加重編碼負擔,需要維護cache和磁碟上資料的一致性。2 順序寫磁碟 沒有使用b...
PCB emi設計要點
首先,對於大腦裡面一定要清楚乙個概念 在高頻裡面,自由空間的阻抗是377歐姆,對於一般的emi中的空間輻射來說,是由於訊號的迴路到了可以和空間阻抗相比擬的地步,因而訊號通過空間 輻射 出來。了解了這一點,要做的就是把訊號迴路的阻抗降下來。控制訊號迴路的阻抗,主要的辦法是縮短訊號的長度,減少迴路的面積...
LOGO設計要點
1.logo設計元素提取 不管你是否了解logo設計元素提取是什麼,不管你是不是乙個logo設計新手,做出了乙個logo就一定會用到元素提取,logo設計元素提取是為logo設計收集與企業相關的logo創作可用元素,以便在logo創作的時候可以豐富logo的視覺變現力。2.收集 做logo要去尋找元...