一 什麼是微服務

2022-09-12 06:09:11 字數 1497 閱讀 3502

什麼是微服務?

什麼是單體架構?

單體架構的問題?  

1.複雜性高

1.1 **難以理解,復用性低

1.2 難以理解導致**質量低,複雜性進一步增加

1.3 **難以被修改和重構

2.伸縮性差

2.1 單體只能按整體橫向擴充套件,無法分模組垂直擴充套件

2.2 io密集型模組和cpu密集型模組無法獨立公升級和擴容

3. 可靠性差

3.1 乙個bug有可能引起整個應用的崩潰

4. 阻礙技術創新

4.1 受技術棧限制,團隊成員使用同一框架和語言,模組得不到拆分,不能使用新的語言和框架

4.2 公升級和變革技術框架變得困難,當有符合業務場景的新技術產生或者新版本時,公升級和變革技術框架所帶來的重構成本和風險很高

4.3 想嘗試新的語言也變得很困難,因為開發成本的上公升,重構和新需求迭代無法協調,所喲最終只能是妥協繼續使用原來的框架和語言

什麼是服務化?

服務化就是把傳統的單機應用中的本地方法呼叫,改造成通過介面產生的遠端方法呼叫

通過服務化,可以解決單體應用膨脹,團隊開發耦合度高,協作效率低下的問題

微服務定義

服務拆分粒度更細

服務對立部署

服務對立維護

服務治理能力要求高

微服務的有點

易於開發與維護

獨立部署

伸縮性強

與組織結構相匹配

技術異構型

微服務和docker

服務拆分

什麼時候應該拆分單體應用?

服務化拆分具體該如何實施呢?

服務拆分的兩種方式:縱向拆分(業務),橫向拆分(公共功能,發郵件,檔案管理)

單體架構--微服務的問題

如何定義服務

如何發布和訂閱服務

如何治理服務

如何定位

如何監控服務

服務治理

服務治理可以說是微服務架構中最為核心和基礎的模組,它主要用來實現各個微服務例項的自動化註冊與發現

在微服務架構中,過多的服務會出現的問題:

1. 需要配置n個服務的網路位置,加大配置的複雜性

2.服務的網路位置變化,都需要改變每個呼叫者的配置

3.集群的情況下,難以做負載

服務註冊和發現

1. 在服務發現框架中,通常都會構建乙個註冊中心,服務提供者(就是提供服務的一方)按照一定格式的服務描述,向註冊中心註冊服務,宣告自己能夠提供哪些服務以及服務的位址是什麼,完成服務發布

2.  服務消費者(就是呼叫服務的一方)請求註冊中心,查詢所需要呼叫服務的位址,然後以約定的通訊協議向服務提供者發起請求,得到請求結果後再按照約定的協議解析結果

3.註冊中心的工作流程是:

服務提供者啟動:向註冊中心註冊自己提供的服務

消費者啟動,向註冊中心訂閱自己需要的服務

註冊中心返回服務提供者的列表給消費者

消費者從服務提供者列表中,按照負載均衡演算法,選擇一台發起請求

consul 服務發現與配置

什麼是微服務,微服務簡介

目錄 微服務今天簡單了解一下微服務,在看微服務前,先了解一下傳統的單機系統。所有的業務子模組都集中在乙個系統中,優點是便於管理,但是規模變大的時候,缺點就很明顯了。缺點 當產品規模越來越大,各種的大大小小模組都塞在乙個專案中,必然會使整個專案變的臃腫,讓開發者難以維護。系統的各個功能模組都依賴於同樣...

什麼是微服務

這麼多的服務使用者要怎麼連線。解決 通過api閘道器管理伺服器,使用者只需要通過連線api閘道器就可以了。這麼多的伺服器該如何通訊。解決 同步通訊 非同步通訊 訊息佇列 kafka,rabbitmq,rocketmq 這麼多的服務該如何管理。解決 服務註冊與發現 基於客戶端的服務註冊與發現 apac...

什麼是微服務

單體應用 業務通常是通過部署乙個 war 包到 tomcat 中,然後啟動 tomcat,監聽某個埠即可對外提供服務。單體應用優點 方便除錯,都在一起 沒有分布式開銷,所有服務都在本地容器內 中小型專案可以快速迭代,不需要太多資源 單體應用容易造成的問題 版本管理難 當專案規模變大時,容易產生衝突。...