1、微服務編程
一、服務化拆分的兩種姿式性能優化
二、服務化拆分的前置條件網絡
2、微服務組件架構
一、服務描述併發
二、註冊中心框架
三、服務框架異步
四、服務監控編程語言
五、服務追蹤分佈式
六、服務治理微服務
微服務架構是一種將單應用程序做爲一套微型服務開發的方法,每種應用程序都在其本身的進程中運行,並與輕量級機制(一般是HTTP資源的API)進行通訊。這些服務是圍繞業務功能構建的,能夠經過全自動部署機制進行獨立部署。這些微服務的將集中化管理部分降到最少,同時,微服務還能夠用不一樣的編程語言編寫,並使用不一樣的數據存儲技術。
服務化拆分的兩種姿式
服務化拆分的前置條件
服務如何治理。能夠想象,拆分爲微服務架構後,服務的數量變多了,依賴關係也變複雜了。好比一個服務的性能有問題時,依賴的服務都勢必會受到影響。能夠設定一個調用性能閾值,若是一段時間內一直超過這個值,那麼依賴服務的調用能夠直接返回,這就是熔斷,也是服務治理最經常使用的手段之一。
服務描述
服務調用首先要解決的問題就是服務如何對外描述。好比,你對外提供了一個服務,那麼這個服務的服務名叫什麼?調用這個服務須要提供哪些信息?調用這個服務返回的結果是什麼格式的?該如何解析?這些就是服務描述要解決的問題。簡單來講就是接口文檔。
經常使用的服務描述方式包括RESTful API、XML配置以及IDL文件三種。
註冊中心
你提供了一個服務,如何讓外部想調用你的服務的人知道。這個時候就須要一個相似註冊中心的角色,服務提供者將本身提供的服務以及地址登記到註冊中心,服務消費者則從註冊中心查詢所須要調用的服務的地址,而後發起請求。
服務框架
服務通訊採用什麼協議?就是說服務提供者和服務消費者之間以什麼樣的協議進行網絡通訊,是採用四層TCP、UDP協議,仍是採用七層HTTP協議,仍是採用其餘協議?
數據傳輸採用什麼方式?就是說服務提供者和服務消費者之間的數據傳輸採用哪一種方式,是同步仍是異步,是在單鏈接上傳輸,仍是多路複用。
數據壓縮採用什麼格式?一般數據傳輸都會對數據進行壓縮,來減小網絡傳輸的數據量,從而減小帶寬消耗和網絡傳輸時間,好比常見的JSON序列化、Java對象序列化以及Protobuf序列化等。
服務監控
一旦服務消費者與服務提供者之間可以正常發起服務調用,你就須要對調用狀況進行監控,以瞭解服務是否正常。
服務追蹤
你還須要記錄服務調用通過的每一層鏈路,以便進行問題追蹤和故障定位。
服務治理
服務監控可以發現問題,服務追蹤可以定位問題所在,而解決問題就得靠服務治理了。服務治理就是經過一系列的手段來保證在各類意外狀況下,服務調用仍然可以正常進行。好比自動擴縮容,就能夠用來解決服務的容量問題。
感謝您耐心看完的文章
順便給你們推薦一個Java技術交流羣:710373545裏面會分享一些資深架構師錄製的視頻資料:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多!