服務(wù)化框架技術(shù)選型實踐_第1頁
服務(wù)化框架技術(shù)選型實踐_第2頁
服務(wù)化框架技術(shù)選型實踐_第3頁
服務(wù)化框架技術(shù)選型實踐_第4頁
服務(wù)化框架技術(shù)選型實踐_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、技術(shù)創(chuàng)新,變革未來服務(wù)化框架技術(shù)選型實踐前言服務(wù)化框架構(gòu)成 京東實踐總結(jié)前言不討論為什么要服務(wù)化不討論微服務(wù)和SOA區(qū)別不討論哪個技術(shù)最優(yōu)前言服務(wù)化框架構(gòu)成 京東實踐總結(jié)基本的服務(wù)化框架構(gòu)成管理端服務(wù)注冊中心統(tǒng)一RPC框架RPC框架基本考量代碼規(guī)范通訊協(xié)議序列化協(xié)議IO模型負載均衡學習成本(包括文檔數(shù),社區(qū)熱度)跨語言需求可擴展性(接口變更時)性能常見的開源RPC框架比較thriftRESTfuldubbogRPC代碼規(guī)范基于Thrift的IDL生成代碼基于JAX-RS規(guī)范無代碼入侵基于.Proto生成代 碼通訊協(xié)議TCPHTTPTCPHTTP/2序列化協(xié)議thriftJSON多協(xié)議支持 默認

2、hessianprotobufIO框架Thrift自帶Servlet容器Netty3Netty4負載均衡無無客戶端軟負載無跨語言多種語言多種語言Java多種語言可擴展性差好好差其它:SOAP、RMI、Hessian、ICE等RPC框架選型小結(jié)要與前端交互的,適合RESTful、gRPC純粹后端交互的,適合thrift、dubbo等小公司、新公司選擇規(guī)范化框架,thrift、RESTful、gRPC已有大量代碼的公司選擇無代碼入侵,dubbo、RESTful注冊中心基本考量服務(wù)注冊服務(wù)訂閱狀態(tài)檢測學習成本維護成本數(shù)據(jù)結(jié)構(gòu)性能CAP原則常見的開源服務(wù)發(fā)現(xiàn)ZooKeeperetcdConsulEur

3、eka一致性強一致性paxos強一致性Raft強一致性Raft弱一致性數(shù)據(jù)結(jié)構(gòu)TreeK/VK/VK/V通訊協(xié)議TCPHTTP、gRPCHTTP、DNSHTTP客戶端ZKClient/Eureka-clientCAPCPCPCPAP其它:Redis、MySQL注冊中心選型小結(jié)規(guī)模小選擇CP,RPC框架可以直接接入數(shù)據(jù)源規(guī)模大選擇AP, RPC框架不可以直接接入數(shù)據(jù)源存在跨機房,跨地域的盡量不要選有強一致性協(xié)議的系統(tǒng)RPC框架必須要有注冊中心不可用的容災(zāi)策略服務(wù)狀態(tài)檢測十分重要完善的服務(wù)化框架構(gòu)成服務(wù)注冊中心管理端配置中心統(tǒng)一RPC 框架接口文檔管理監(jiān)控中心分布式跟蹤服務(wù)治理網(wǎng)關(guān)網(wǎng)關(guān)鑒權(quán)限流協(xié)議

4、轉(zhuǎn)換Mock其它統(tǒng)一處理邏輯(例如請求解析、響應(yīng)包裝)服務(wù)治理服務(wù)路由:權(quán)重、IP路由、分組路由、參數(shù)路由、機房路由等調(diào)用授權(quán):應(yīng)用授權(quán)、token、黑白名單動態(tài)分組:服務(wù)端切分組、客戶端切分組調(diào)用限流:服務(wù)端限流、客戶端限流灰度部署:灰度上線、預發(fā)標識、接口測試配置下發(fā):接口配置、全局配置服務(wù)降級:Mock、熔斷、拒絕服務(wù)前言服務(wù)化框架構(gòu)成 京東實踐總結(jié)第一代SAF背景(2012)各個部門框架不統(tǒng)一已有較多代碼接口規(guī)模在1K左右服務(wù)節(jié)點在50K左右機器規(guī)模在8K左右機房拓撲簡單第一代SAF選擇(2012)RPC框架:dubbo,做配置擴展,以及功能擴展包括rest(resteasy)、web

5、service(cxf)、kryo序列化、thrift序列化、調(diào)用壓縮等注冊中心:Zookeeper,RPC框架直接接入數(shù)據(jù)源監(jiān)控中心:監(jiān)控服務(wù)+HBase管理平臺:讀取Zookeeper做管理平臺第二代JSF背景(2014)業(yè)務(wù)的不斷增長接口、機器數(shù)量級增長多機房問題跨語言問題服務(wù)治理需求第二代JSF選擇(2014)RPC框架:自研框架,兼容dubbo協(xié)議注冊中心:自研,基于DB作為數(shù)據(jù)源,前置Index服務(wù)監(jiān)控中心:監(jiān)控服務(wù)+InfluxDB(后來改為ElasticSearch)管理端:基于DB,功能更強大HTTP網(wǎng)關(guān):自研開發(fā)周期:7人/年2014.12015.1 包括開發(fā)、測試、預發(fā)、

6、上線JSF架構(gòu)簡圖JSF 注冊中心引入Index服務(wù)概念通過數(shù)據(jù)庫保證數(shù)據(jù)一致性保證,注冊中心無狀態(tài),且內(nèi)存有服務(wù)列表全量緩 存,連不上數(shù)據(jù)庫也保證可讀數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)更適合各種維度展示、過濾、分析等注冊中心就是個JSF服務(wù),監(jiān)控到壓力大即可進行動態(tài)水平擴展服務(wù)列表推送邏輯改進注冊中心與RPC客戶端可各種交互JSF RPC框架JSF RPC框架Config:Spring/API/AnnotationProxy: Javassist/JDKInvoker/Filter:內(nèi)置+自定義Client:Failover/FailFast/TransportPinpoint/MultiClientProx

7、y調(diào)用方式:同步/異步并行/異步回調(diào)/Callback/泛化Loadbalance:Random/Roundrobin/ConsistentHash/ LocalPreference/LeastActiveCall路由:參數(shù)路由,分組路由,(IP級別路由邏輯在注冊中心做)長連接維護:可用/死亡/亞健康JSF RPC框架協(xié)議:JSF/SAF(dubbo)/HTTP/Telnet/HTTP2第三方:REST/Webservice序列化:MsgPack/Hessian/Json/Java/protobuf(c+)壓縮:Snappy/LZMA網(wǎng)絡(luò):基于Netty4,長連接復用線程模型:BOSS+WORKER+BIZ容災(zāi):本地文件請求上下文:IP,參數(shù),隱式傳參事件監(jiān)聽:響應(yīng)事件,連接事件,狀態(tài)事件JSF 管理平臺JSF HTTP網(wǎng)關(guān)基于Netty4實現(xiàn)方便跨語言通過HTTP+JSON調(diào)用JSF服務(wù)解決單點問題,無需自己設(shè)置VIPJSF遇見京東彈性云(Docker)硬件指標網(wǎng)絡(luò)輕量快速JSF目前規(guī)模接口數(shù):萬級

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論