日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

微服務開發,這十個點你要知道

來源: 責編: 時間:2023-12-23 13:47:00 283觀看
導讀微服務架構是一種軟件開發模式,它將一個復雜的應用程序拆分為多個個獨立的、小型的、可復用的服務,每個服務負責一個特定的業務功能。微服務架構有許多優點,例如提高系統的可擴展性、可維護性、可測試性和故障容忍性。但

微服務架構是一種軟件開發模式,它將一個復雜的應用程序拆分為多個個獨立的、小型的、可復用的服務,每個服務負責一個特定的業務功能。TIi28資訊網——每日最新資訊28at.com

微服務架構有許多優點,例如提高系統的可擴展性、可維護性、可測試性和故障容忍性。TIi28資訊網——每日最新資訊28at.com

但是,微服務架構也有很多問題需要注意,例如如何設計合理的劃分服務接口、如何在服務間實現高效通信、如何保證數據一致性等。因此要想成功地使用微服務架構,我們需要遵循一些最佳實踐。TIi28資訊網——每日最新資訊28at.com

以下是一些微服務架構的最佳實踐,我將盡我所了解的知識給大家進行講解。本文大綱如下,TIi28資訊網——每日最新資訊28at.com

圖片圖片TIi28資訊網——每日最新資訊28at.com

1. 不使用微服務架構

沒錯,我們應該盡量避免使用微服務架構。TIi28資訊網——每日最新資訊28at.com

認真地說,使用微服務架構只能被視為最后的選擇。從項目實際應用場景開發,少看一些網上關于微服務的吹捧。務實一點,根據項目體量、業務復雜度選擇一個適合當前項目的架構。TIi28資訊網——每日最新資訊28at.com

首先嘗試構建一個單體的模塊化架構,而不是一上來就搞微服務架構。TIi28資訊網——每日最新資訊28at.com

2. 針對失敗場景進行處理

在任何使用微服務的分布式系統里面,總是有調用失敗的可能,比如網絡分區、某個服務宕機不可用等。TIi28資訊網——每日最新資訊28at.com

所以我們在系統調用層面針對失敗場景的處理,應該設計得越早越好。TIi28資訊網——每日最新資訊28at.com

故障設計最好三個級別,TIi28資訊網——每日最新資訊28at.com

  • 基礎設施級別
  • 數據庫級別和
  • 單個微服務級別

實際的針對失敗場景處理,可以使用斷路器、服務降級和 "隔板模式"。TIi28資訊網——每日最新資訊28at.com

隔板模式在分布式系統中就是指資源隔離,在分布式系統里,資源隔離通常按業務分為進程級別的隔離和線程級別的隔離,某些簡單的服務質量要求不高的業務場景下實現進程級別的隔離就夠了,但是在某些對服務質量要求較高的分布式場景下需要線程級別的細粒度隔離。TIi28資訊網——每日最新資訊28at.com

3. 構建小型服務

微服務架構中,每個服務應該都按單一職責進行設計。TIi28資訊網——每日最新資訊28at.com

每個微服務應該只負責一個業務領域,并且盡量避免涉及其他領域。TIi28資訊網——每日最新資訊28at.com

這樣可以提高代碼的可讀性、可測試性和可維護性,也可以降低系統的復雜度和耦合度。TIi28資訊網——每日最新資訊28at.com

4. 使用輕量級通信協議

微服務架構中,服務之間的通信協議時非常重要的。因為在一些對性能要求較高的場景里,選擇一個輕量級協議所能帶來的 QPS 提升,也是非常客觀的。TIi28資訊網——每日最新資訊28at.com

比如服務間可以使用 REST、GRPC 或消息隊列等通信協議,這樣可以盡可能減少服務通信帶來的開銷并提升性能。TIi28資訊網——每日最新資訊28at.com

5. 服務發現

微服務架構下,服務實例的網絡地址是動態分配和變化的,因此需要一種機制,能夠及時獲取服務實例的最新的網絡地址,以便進行服務間通信。TIi28資訊網——每日最新資訊28at.com

并且服務實例的數量和狀態都是隨著業務需求和故障情況而變化的,還需要有能夠及時感知服務實例的上線、下線、故障等情況的能力。TIi28資訊網——每日最新資訊28at.com

因此我們需要使用服務發現組件,它負責自動發現服務實例,負載均衡和故障轉移。TIi28資訊網——每日最新資訊28at.com

服務發現組件有 Eureka 、Consul、Nacos 等,國內的話,推薦大家使用 Nacos。TIi28資訊網——每日最新資訊28at.com

6. 數據庫隔離

微服務架構下,每個服務的數據庫應該都是單獨部署的,它們之間相互隔離。TIi28資訊網——每日最新資訊28at.com

一個服務要操作另一個服務數據庫中的數據時,都應該只能通過調用另一個服務的接口來實現,而不是粗暴的直接訪問其他服務的數據庫進行讀寫。TIi28資訊網——每日最新資訊28at.com

數據庫隔離的最終目標就是為了減少服務之間的耦合,使它們能夠獨立發展。TIi28資訊網——每日最新資訊28at.com

7. 實施彈性模式

為了提高微服務架構中各個服務的彈性,我們應該盡量使用彈性模式。TIi28資訊網——每日最新資訊28at.com

所謂彈性,其實就是服務的可用性,專業一點的話說就是從某些類型的故障中恢復并保持自身服務的能力。TIi28資訊網——每日最新資訊28at.com

那么,我們應該如何實施實施彈性模式嘞?TIi28資訊網——每日最新資訊28at.com

其實很簡單,我給大家分成兩個部分進行講解,一個是服務內,另一個是服務外。TIi28資訊網——每日最新資訊28at.com

服務內指的是別人調用我們的服務時,需要注意的點有,TIi28資訊網——每日最新資訊28at.com

  • 添加緩存
  • 資源隔離
  • 接口限速

服務外指的是我們調用別人的服務時,需要注意的點有,TIi28資訊網——每日最新資訊28at.com

  • 調用超時
  • 請求重試
  • 斷路器應用

8. 服務監控于鏈路追蹤

有句話說得好,"在任何分布式系統中,會宕機的服務最終都會宕機"。

本文鏈接:http://www.www897cc.com/showinfo-26-52589-0.html微服務開發,這十個點你要知道

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 快手上線新農人扶持專區 三農紅人計劃升級

下一篇: 一文讀懂JWT

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 麻栗坡县| 彭泽县| 崇礼县| 新郑市| 达州市| 五家渠市| 宁津县| 余庆县| 延长县| 老河口市| 连云港市| 无锡市| 丽江市| 宁安市| 汝城县| 通辽市| 安化县| 安庆市| 凤山县| 错那县| 兴海县| 富裕县| 灵丘县| 柳河县| 高平市| 广平县| 贺兰县| 灵武市| 漯河市| 武城县| 正宁县| 苗栗县| 威信县| 定襄县| 镇巴县| 康平县| 大荔县| 扎鲁特旗| 甘泉县| 高雄市| 河源市|