mina原始碼解析之 資料接收處理流程

2021-09-01 15:16:05 字數 671 閱讀 1123

如果想通過mina來實現乙個自定義協議的網路應用程式,使用者只需要編寫自定義協議編譯碼處理器和業務處理邏輯即可。由於每乙個session關聯乙個processor處理執行緒,多個session共享有限的processor執行緒池,如果handler中的業務邏輯處理比較耗時,會導致後續請求阻塞等待,嚴重降低效率,所以,一般會向acceptor的filterchain新增乙個executorfilter來緩解該問題,典型**如下:

defaultiofilterchainbuilder chain = acceptor.getfilterchain();

// 日誌

loggingfilter filter = new loggingfilter();

chain.addlast("logger", filter);

// 協議處理

chain.addlast("codec", new protocolcodecfilter(codecfactory));

// 執行緒池

chain.addlast("executor", new executorfilter(executors.newcachedthreadpool()));

當server接收到client傳送資料後的處理流程如下:

呵呵,用jude畫的序列圖,不是很規範。備忘。

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...

Mongoose原始碼之接收連線

上次提到,mongoose通過呼叫mg start 啟動乙個master thread執行緒,用於監聽所有的client連線請求。在接到client請求後,主程序會通過呼叫accept new connection 去處理連線請求。下面是accept new connection 的實現 stati...

原始碼解析 JDK原始碼之LinkedHashMap

linkedhashmap原始碼,基於 jdk1.6.43 他繼承了hashmap,並且實現了插入和訪問的有序功能 public class linkedhashmapextends hashmapimplements map 其也有乙個entry內部類,繼承了 hashmap 的entry 內部類...