[發明專利]一種基于非阻塞通信的微服務系統設計方法有效
| 申請號: | 201710112875.4 | 申請日: | 2017-02-28 |
| 公開(公告)號: | CN106850829B | 公開(公告)日: | 2019-11-22 |
| 發明(設計)人: | 陶明亮;楊峰;高旺 | 申請(專利權)人: | 蘇州星熙數據科技有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 32257 蘇州市中南偉業知識產權代理事務所(普通合伙) | 代理人: | 耿丹丹<國際申請>=<國際公布>=<進入 |
| 地址: | 215000 江蘇省蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 阻塞 通信 微服 系統 設計 方法 | ||
1.一種基于非阻塞通信的微服務系統設計方法,其特征在于,包括步驟:
(1)構建三層網絡架構的服務端:包括由下至上的反應通信調度層、職責鏈管道層和業務邏輯處理層,其中
-所述反應通信調度層監聽網絡的讀寫和連接操作,負責將網絡層的數據讀取到內存緩沖區中,然后觸發各種網絡事件,將這些事件觸發到管道中,由管道充當的職責鏈來進行后續的處理;
-所述職責鏈管道層負責事件在職責鏈中的有序傳播,同時負責動態的編排職責鏈,職責鏈選擇監聽和處理自己關心的事件、攔截處理和向后/向前傳播事件;
-所述業務邏輯處理層負責業務邏輯處理與應用層協議管理;
(2)客戶端通過API透明地與所述服務端發送和接收信息;
所述服務端的實現步驟為:
A、創建一個服務的實例,所述服務為服務入口,通過消息循環等待客戶端的信息;
B、綁定一個事件循環的線程池,通過一事件循環的數值來實現,用于處理選擇器Selector產生的事件通道,由事件來實現對選擇器的輪詢,每個事件處理網絡的消息和系統自定義的任務;
C、設置并綁定服務端的IO通道非阻塞服務端口通道,通過通道的類型決定提供服務的模式;
D、注冊和創建通信鏈路,用于處理網絡事件,負責管理和執行通道處理模塊,網絡事件以事件流的形式在通道管線中流轉,由通道管線根據通道處理模塊的執行策略調度通道處理模塊的執行;
所述客戶端的實現步驟如下:
1)創建處理客戶端連接、I/O讀寫的反應線程組非阻塞事件輪詢模塊,通過構造函數指定I/O線程的個數,默認為CPU內核數的2倍;
2)用戶指定的通道類型創建用于客戶端連接的非阻塞端口通道;
3)創建默認的通道處理模塊,用于調度和執行網絡事件;
4)異步發起TCP連接,判斷連接是否成功,如果成功,則直接將非阻塞端口通道注冊到多路復用器上,監聽讀操作位,用于數據報讀取和消息發送;如果沒有立即連接成功,則注冊連接監聽位到多路復用器,等待連接結果;
5)注冊對應的網絡監聽狀態位到多路復用器;
6)由多路復用器在I/O現場中輪詢各通道,處理連接結果;
7)如果連接成功,發送連接成功事件,觸發通道管線執行;
8)由通道管線調度執行系統和用戶的通道處理模塊,執行業務邏輯。
2.根據權利要求1所述的基于非阻塞通信的微服務系統設計方法,其特征在于:所述網絡事件的處理方法為:
a、建立系統編解碼框架;
b、建立通用的基于長度的半包解碼器;
c、打印碼流日志;
d、對SSL進行安全認證;
e、進行鏈路空閑檢測;
f、流量整形;
g、采用Base64編解碼;
h、系統初始化并檢測工作,然后綁定并啟動監聽端口,并將IO通道注冊到選擇器上監聽客戶端連接;
i、選擇器輪詢:由調度系統負責調度和執行選擇器輪詢操作,選擇準備就緒的通道集合;
j、當輪詢到準備就緒的通道之后由消息事件執行通道鏈路的相應方法,最終調度并執行通道處理方法;
k、執行用戶自定義的通道處理方法,完成整個服務端的任務。
3.根據權利要求2所述的基于非阻塞通信的微服務系統設計方法,其特征在于:所述編解碼框架為Thrift的壓縮二進制編解碼框架或Google的Protobuf二進制序列化框架或基于系統自身提供的編解碼框架。
4.根據權利要求2所述的基于非阻塞通信的微服務系統設計方法,其特征在于:所述網絡事件包括鏈路注冊、鏈路激活、鏈路斷開、接收到請求消息、請求消息接收并處理完畢、發送應答消息、鏈路發生異常、用戶自定義事件中的一種或多種。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州星熙數據科技有限公司,未經蘇州星熙數據科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710112875.4/1.html,轉載請聲明來源鉆瓜專利網。





