在軟體系統組成越發複雜的今天,如何保證每個服務間的通訊,是系統架構師必須考慮的重要一點。
作為一名軟體測試工程師,了解系統架構以及服務間的通訊過程及原理,對我們開展測試工作有很大的幫助。
這篇部落格,簡單介紹下常見的一些通訊服務框架基礎知識。。。
參考:《京東基礎架構建設之路》
要組成乙個基本的通訊服務框架,最起碼需要這三部分:統一的rpc框架、服務註冊中心、管理端。
一、rpc框架
rpc(remote procedure call),即遠端過程呼叫。
1、選擇rpc框架的注意事項
①、**規範:是否有基於某些標準協議的**生成,還是無**入侵;
②、通訊協議:tcp/http
③、序列化協議:是二進位制還是文字格式,是否需要跨語言、效能如何;
④、i/o模型:是同步還是非同步,是阻塞還是非阻塞模式;
⑤、負載均衡:負載均衡模式是客戶端軟負載、**模式,還是服務端負載;
如果選型的框架為開源框架,還需要考慮以下幾點:
①、成熟度:學習成本、難易程度、社群熱度、文件是否詳細、是否有專門團隊維護更新、穩定性如何;
②、可擴充套件性:是否有spi擴充套件,是否支援上下相容;
③、跨語言:是否支援跨語言;
④、效能:作為基礎服務,效能必須出色,否則服務框架本身會成為瓶頸;
2、開源框架對比表
3、選型建議
①、與前端互動:適合選擇短連線、跨語言的框架,比如restful、grpc;
②、純粹的後台互動:適合選擇長連線、序列化為二進位制的框架,比如thrift、dubbo,這樣相對更高效;
③、小型團隊:如果是第一次使用,建議選擇規範化的rpc框架,比如thrift、restful、grpc;
④、大型團隊:大型團隊一般已有大量業務**,最好選擇無**入侵的框架,比如dubbo、restful,否則改造成本將變得很大;
二、服務註冊中心
註冊中心相當於服務提供者和服務呼叫者之間的中間人,其提供服務註冊、服務發現、服務狀態檢測等基礎服務,在服務治理中的作用及其重要。
1、選型注意點
①、服務註冊:接收註冊資訊的方式;
②、服務訂閱:返回訂閱資訊的方式,push或者pull;
③、狀態檢測:檢測服務端的存活狀態;
如果選擇開源的註冊中心,則需要考慮如下幾點:
①、成熟度:學習成本、社群熱度、文件是否詳細等;
②、維護成本:註冊中心日常維護;
③、資料結構:能否快速定位結果,是否可以進行遍歷篩選;
④、效能和穩定性:良好的效能和穩定性,是服務中心所必須具有的特質;
⑤、cap原則:即資料一致性、服務可用性、分割槽容錯性。只能三選二,要麼選擇cp(關注一致性),要麼選擇ap(服務可用性);
2、開源服務中心對比表
3、選型建議
①、規模小:建議選擇cp,rpc框架可直接接入資料來源;
②、規模大:建議選擇ap,rpc框架不可以直接接入資料來源;
③、跨機房/地域:盡量不要選強一致性協議的註冊中心,因為跨機房跨地域本身帶來的時延性會對資料一致性造成很大干擾;
ps:rpc框架必須具有註冊中心不可用情況下的容災策略,服務狀態檢測十分重要!!!
三、客戶端
客戶端即視覺化管理的部分,可以通過web介面等方式,對服務提供者和呼叫者等相關資訊進行視覺化展示和管理操作。
比如常見的mq(包括active mq、scoket mq和rabbit mq),都有視覺化的管理介面,如下:
tp框架基礎知識
框架的好處 建立應用 四種路由形式 建立控制器和檢視 檢視的話display 自動載入與方法名稱相同的檢視,或者可以指明是哪個,也可以指明其他控制器對應的檢視 this display goods showlist tp框架裡面有兩種模式,線上生產模式和開發模式,開發模式是比較有好的 關於引入的路徑...
python 基礎知識框架
重點內容 第一單元 1 常用的dos命令 dir 檢視目錄 md 建立目錄 cd 去指定目錄 cd.返回上一目錄 cd 返回根目錄 去指定碟符 rd 刪除目錄 del 刪除檔案 cls 清屏 exit 退出命令列 2 計算機儲存單位 1t 1024m 1m 1024kb 1kb 1024b 1b 8...
彙編基礎知識框架
分析算符可以把標誌符號分解成它的三個屬性值或取得它所定義的儲存空間的大小 用來建立或臨時改變標誌符號的型別或儲存器運算元的儲存單元型別 cx為迴圈計數器 指令與迴圈入口距離 126 129之間 是指匯程式設計序通過int 21h軟中斷來呼叫dos內部子程式完成特性的一系列操作的一種方法 呼叫前將功能...