1.微服務介紹

1.什麼是微服務

使用一套小服務來開發各個應用的方式,每個服務啓動單獨的進程,一般採用輕量級的通訊機制互聯,並且它們可以通過自動化的方式部署。
微服務是一種設計思想。

2.微服務的特點

單一職責:獨立的業務單獨放在一個項目裏,比如訂單服務作爲一個項目。
輕量級的通信:http,rpc通信。
隔離性:每個服務相互隔離,不干擾
有自己的數據
技術多樣性

3.微服務誕生的背景

互聯網行業的快速發展,需求變化快,用戶數量變化快。
敏捷開發深入人心,用最小的代碼,做最快的迭代,頻繁修改、測試、上線。
容器技術的成熟,是爲服務的技術基礎。

4.互聯網架構演進之路

1.微服務介紹

4.1單體架構

1.微服務介紹

單體架構:
1.所有功能集成在一個項目中
2.項目整個打包,可以部署到服務器運行
3.應用於數據庫可以分開部署,提高性能

優點:
1.小項目的首選,開發成本低,架構簡單。

缺點:
1.項目複雜後,很難擴展和維護
2.擴展成本高,有瓶頸
3.技術棧受限制

4.2垂直架構

1.微服務介紹

垂直架構:
1.對於單體架構的拆分,大項目拆成單個項目結構
2.存在數據冗餘
3.項目之間要處理數據同步,通過數據庫同步

優點:
1.小項目的首選,架構簡單。
2.避免單體架構的無限擴大
3.技術不受限制

缺點:
1.很多功能放在一個工程中,有一定的瓶頸
2.系統性能擴展要通過集羣節點擴展,成本較高

4.3SOA架構(面向服務的架構)

1.微服務介紹

SOA架構:
1.將重複性的功能進行抽取,抽取成對應的服務。
2.通過ESB服務總線去訪問。

優點:
1.提高系統可重用性
2.ESB減少系統接口耦合問題

缺點:
1.系統與服務界限模糊,不利於開發
2.ESB服務接口協議不固定,不利於系統維護
3.抽取力度較大,有一些耦合性

4.4微服務架構

1.微服務介紹

微服務架構:
1.將服務層一個一個抽取微服務
2.遵循單一原則
3.微服務之間採用一些輕量協議傳輸數據

優點:
1.服務拆分粒度非常細,利於開發
2.提高系統可維護性
3.比ESB更輕量
4.適用於互聯網更新換代快的情況

缺點:
1.服務過多,服務治理成本高
2.開發技術要求更高

5.微服務架構圖

假設做個商城網站:
1.用戶可以登錄和註冊,發短信驗證
2.管理員可以查看商品,對商品增刪改查

傳統訪問方式如下:

1.微服務介紹

微服務架構訪問方式

1.微服務介紹

添加Apigateway,對客戶端暴露一套API,方便調用

1.微服務介紹

6.微服務架構的優勢

1.獨立性
2.使用者容易理解
3.技術棧靈活
4.高效團隊

7.微服務架構的不足

1.額外的工作,服務的拆分
2.保證數據一致性
3.增加了溝通成本

8.微服務需要考慮的問題

8.1微服務如何通信

從通信模式考慮:

1.微服務介紹

從通信協議考慮:
RPC

8.2微服務如何發現彼此

傳統服務下:
一般是IP,端口號訪問

1.微服務介紹

微服務發現有兩種方式----客戶端發現和服務端發現
客戶端發現:
微服務啓動後,將自己IP和和端口進行註冊,客戶端查詢註冊,得到服務的IP和端口,通過負載均衡,訪問微服務。

1.微服務介紹

服務端發現:
客戶端訪問時,不去註冊中心了,通過服務發現代理去直接訪問

1.微服務介紹

8.3微服務如何部署、更新和擴容

微服務部署到docker容器中
涉及服務編排:k8s,swarm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章