日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

01.微服务系列介绍

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.微服务系列介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。