天天看點

mooon-agent設計要點

mooon-agent以簡約的設計為主,力求各對象之間保持簡單的關系,盡量避免過度的傳遞,是以CAgentThread成了核心。除此之外,還有幾個關鍵的設計點:1、采用了可Epollable的隊列,以保證消息的實時上報

2、使用了狀态機,分别為發送消息的CSendMachine和接收消息的CRecvMachine,保證所有過程是異步非阻塞的,同時又使得代碼簡潔

3、對下行消息處理的抽象,以達到通用的目的

4、使用了NetInt,使用得消息網絡位元組序問題迎刃而解

保證Agent做好的前提:

1、充分的設計,追求對象間的關系最簡化

2、有限的設計,每個階段控制功能數,鄙棄一步到位的思想,比如上報心跳這個功能,那需要同時支援發送簡單的心跳,也要支援發送富心跳(附帶資料的心跳,如CPU使用率等),這樣做會導緻第一版本難以收斂,會導緻設計擴張

繼續閱讀