01.微服务系列介绍
微服務系列實踐 .NET CORE
在開始之前呢,還是得廢話一下,畢竟還是需要介紹一下這個系列我們要實現什么樣的一套服務架構,也讓大家能初步的有一個了解,后續實踐起來也有一個完整的概念,相對也會容易的多。
互聯網架構演變
隨著市場的快速發展,業務的不斷擴大,單塊架構應用面臨著越來越多的挑戰,其改造與重構勢在必行。而微服務架構的誕生,是互聯網高速發展,虛擬化技術應用以及持續交付、DevOps深入人心的綜合產物。隨著用戶需求個性化、產品生命周期變短,微服務架構是未來軟件軟件架構朝著靈活性、擴展性、伸縮性以及高可用性發展的必然方向。同時,以Docker為代表的容器虛擬化技術的盛行,將大大降低微服務實施的成本,為微服務落地以及大規模使用提供了堅實的基礎和保障。
單體架構
記得剛畢業12年左右那會這種單體應用都是常規的一種軟件開發設計模式,它足夠簡單,在當時能很好切較快的滿足各種小心公司的各個業務模塊。
優點
請求延時低
部署運維成本低
開發簡單直接,集中式管理
單應用內基本不會重復開發
缺點
耦合嚴重,可拓展性差
技術選型單一
架構力度較粗,不能很好適應需求的迭代
提供服務困難,調用困難
配置越來越多管理也變得更加苦難
加載、編譯緩慢
RPC架構
隨著應用的迭代、系統訪問量提高、業務復雜度提高、代碼也越來越復雜,這個時候單體應用架構逐漸轉變為面向服務的架構轉變。RPC(Remote Promote Call) 一種進程間通信方式,允許像調用本地服務一樣調用遠程服務,在 .NET 語言,接觸的比較少,在java當中如:spring cloud、dubbo。
優點
RPC框架一般使用長鏈接,不必每次通信都要3次握手,減少網絡開銷
RPC框架一般都有注冊中心,有豐富的監控管理
發布、下線接口、動態擴展等,對調用方來說是無感知、統一化的操作
協議私密,安全性較高
rpc 協議更簡單內容更小,效率更高
服務化架構、服務化治理,RPC框架是一個強力的支撐
缺點
配置復雜
僅適用內部服務調用
多了一層間接性,出現網絡問題時,debug比較困難
交互方式單一,不能進行復雜的多模塊之間的協議交互
異常處理困難
改善了單體應用在系統間交互的不足,適用于內部服務交互。
微服務架構 與 SOA架構
這兩個我就放一起說了,因為本質上SOA與微服務是一脈相承的,微服務相當于把SOA的理念繼續升華,精進。
其核心思想是在應用開發領域,使用一系列微小服務來實現單個應用的方式途徑,或者說微服務的目的是有效的拆分應用,實現敏捷開發和部署 ,可以是使用不同的編程語言編寫。而SOA可能包含的意義更泛一些,更不準確一些。
隨著業務發展,服務數量越來越多,服務生命周期管控和運行態的治理成為瓶頸,單體架構按照業務功能在垂直方向進行拆分,就變成了SOA架構,用于提升服務質量、服務治理。
微服務是一種架構風格,也是一種服務,通過服務的原子化拆分,以及微服務的獨立打包、部署和升級,小團隊的交付周期將縮短,運維成本也將大幅度下降。
優點
按業務邊界拆分服務
服務可獨立部署
服務復用率高
服務之間通訊也變得更加容易
從架構劃分應用劃分更加清晰
核心模塊穩定,獨立升級帶來的影響較小
服務可根據分類到團隊進行管理(維護、工作分明,職責清晰)
業務模塊復用率相對較高
按照業務邊界劃分后的服務拓展也更加容易
可不同語言,引入新技術較為方便
微服務系列的實踐方式
雖然微服務有著很大的優勢,但同時我們面臨的挑戰也將更多:
服務多,配置管理復雜
服務間依賴關系復雜
服務需要通過負載集群實現高可用
服務調用關系及性能監控面臨挑戰
服務文檔的規范
服務降級、熔斷
服務的拓展性
我們的實現方式:
負載集群及高可用:keepalived + nginx
服務注冊、發現、健康檢查通知:consul
服務治理、性能監控、跟蹤:skywalking
統一配置中心:apollo
集中的日志:elasticSearch + logstash + kibana
API網關(熔斷、降級):Ocelot
總結
總之呢,微服務的核心思想是有多個獨立的微小的服務組成,每個服務的開發和發布都沒有絕對的依賴關系。服務可獨立拓展伸縮,每個服務應有自己明確的邊界,也可以采用不同的編程語言來實現,我們主要做的就是給用戶一個友好的體驗,讓用戶能感受到它的方便簡單和快捷,服務內部也應該有良好的日志和監控體系,提高服務的高可用、易拓展的能力。
原文地址:?https://github.com/zengqinglei/microservice-deploy/wiki/01.%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%B3%BB%E5%88%97%E4%BB%8B%E7%BB%8D
總結
以上是生活随笔為你收集整理的01.微服务系列介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用ABP只要加人即可马上加快项目进展(二
- 下一篇: Rainbond 5.0正式发布, 支持