1、微服務(wù)架構(gòu)概念 簡而言之,微服務(wù)架構(gòu)就是將一個完整的應用從數(shù)據(jù)存儲開始水平/垂直拆分成多個不同的服務(wù)。每個服務(wù)都能獨立部署、獨立維護、獨立擴展,各服務(wù)之間通過諸如RESTful API(http)的方式互相調(diào)用。即微服務(wù)是自理自治的服務(wù)單元。 說明:拆分角度有垂直拆分/水平拆分。 水平拆分:按照業(yè)務(wù)對系統(tǒng)進行劃分。舉個例子,原系統(tǒng)包括了運營和支付,現(xiàn)水平拆分為運營系統(tǒng)和支付系統(tǒng)。優(yōu)點是:不同業(yè)務(wù),往往性能要求,以及請求量是不一樣的。拆分后保證業(yè)務(wù)之間的可用性影響最小化。 垂直拆分:將同樣的系統(tǒng)按照應用場景(調(diào)用方)進行拆分 。舉個例子,原系統(tǒng)的支付場景中包括了用戶支付,第三方調(diào)用 支付,現(xiàn)垂直拆分為用戶支付,商戶支付。優(yōu)點:各個垂直服務(wù)調(diào)用之間相互不影響,自理自治;通過配置可以進行上游調(diào)用降級等。 2、SpringBoot回顧 優(yōu)勢: 1.為所有Spring開發(fā)者更快的入門 2.開箱即用,提供各種默認配置來簡化項目配置 3.內(nèi)嵌式容器簡化Web項目 4.沒有冗余代碼生成和XML配置的要求 3、微服務(wù)架構(gòu)進化 服務(wù)化的核心就是將傳統(tǒng)的一站式應用拆分成一個個的應用,而微服務(wù)在這個基礎(chǔ)上要更徹底地去耦合,并且強調(diào)DevOps和快速演化。 說明:DevOps是英文Development和Operations的合體,他要求開發(fā)、測試、運維進行一體化的合作,進行更小、更頻繁、更自動化的應用發(fā)布,以及圍繞應用架構(gòu)來構(gòu)建基礎(chǔ)設(shè)施的架構(gòu)。 3.1、服務(wù)化進化之nginx nginx通過接受客戶端http請求,根據(jù)路徑配置,轉(zhuǎn)發(fā),跳轉(zhuǎn)相應的服務(wù)。 缺點: 1.nginx配置中存在服務(wù)調(diào)用的邏輯 2.服務(wù)消費者不知道,真正服務(wù)提供者的實例。 3.服務(wù)提供者不易管理 也正是以上的缺點,演變出dubbo 3.2、服務(wù)化進化之dubbo dubbo是阿里開源的一個SOA服務(wù)治理解決方案。服務(wù)消費者和提供者都可將服務(wù)信息注冊到Register,形成了服務(wù)中心的組件。通過Monitor進行很好的服務(wù)管理,消費者可以進行負載均衡,服務(wù)降級等。 缺點: 1.維護停止(阿里目前又著手維護) 2.dubbo嚴重依賴于第三方組件(zookeeper/redis) 3.由于dubbo的rpc調(diào)用,使得服務(wù)提供方與消費方有著代碼層次的高強度耦合。 3.3、服務(wù)化之SpringCloud SpringCloud提出是開發(fā)面向云端的Application,為微服務(wù)提供了全套的組件技術(shù)支撐。值得注意的是:SpringCloud拋棄了Dubbo的RPC通信,采用了基于Http的Rest方式通信。 4、Spring Cloud的大家庭 服務(wù)治理:這是SpringCloud的核心。目前SpringCloud主要通過整合Netflix的相關(guān)產(chǎn)品來實現(xiàn)這方面的功能(Spring Cloud Netflix)。包括用于服務(wù)注冊和發(fā)現(xiàn)的Eureka,調(diào)用斷路器Hystrix,調(diào)用端負載均衡Ribbon,Rest客戶端Feign,智能服務(wù)路由Zuul等。 分布式鏈路監(jiān)控:Spring Cloud Sleuth提供了全自動、可配置的數(shù)據(jù)埋點,以收集微服務(wù)調(diào)用鏈路上的性能數(shù)據(jù),并發(fā)送給Zipkin進行存儲、統(tǒng)計和展示。 消息組件:Spring Cloud Stream對于分布式消息的各種需求進行了抽象,包括發(fā)布訂閱、分組消費、消息分片等功能,實現(xiàn)了微服務(wù)之間的異步通信。Spring Cloud Stream也集成了第三方的RabbitMQ和Apache Kafka作為消息隊列的實現(xiàn)。而Spring Cloud Bus基于Spring Cloud Stream,主要提供了服務(wù)間的事件通信(比如刷新配置)。 配置中心:基于Spring Cloud Netflix和Spring Cloud Bus,Spring又提供了Spring Cloud Config,實現(xiàn)了配置集中管理、動態(tài)刷新的配置中心概念。配置通過Git或者簡單文件來存儲,支持加解密。 安全控制:Spring Cloud Security基于OAUTH2這個開放網(wǎng)絡(luò)的安全標準,提供了微服務(wù)環(huán)境下的單點登錄、資源授權(quán)、令牌管理等功能。 |
|
來自: 昵稱11935121 > 《未命名》