微服務開發,這10個點你要知道(微服務 開發)

微服務架構是一種軟件開發模式,它將一個復雜的應用程序拆分為多個個獨立的、小型的、可復用的服務,每個服務負責一個特定的業務功能。

微服務架構有許多優點,例如提高系統的可擴展性、可維護性、可測試性和故障容忍性。

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

以下是一些微服務架構的最佳實踐,我將盡我所了解的知識給大家進行講解。本文大綱如下,

微服務開發,這10個點你要知道(微服務 開發)

1. 不使用微服務架構

沒錯,我們應該盡量避免使用微服務架構。

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

首先嘗試構建一個單體的模塊化架構,而不是一上來就搞微服務架構。

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

在任何使用微服務的分布式系統里面,總是有調用失敗的可能,比如網絡分區、某個服務宕機不可用等。

所以我們在系統調用層面針對失敗場景的處理,應該設計得越早越好。

故障設計最好三個級別,

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

實際的針對失敗場景處理,可以使用斷路器、服務降級和 "隔板模式"。

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

3. 構建小型服務

微服務架構中,每個服務應該都按單一職責進行設計。

每個微服務應該只負責一個業務領域,并且盡量避免涉及其他領域。

這樣可以提高代碼的可讀性、可測試性和可維護性,也可以降低系統的復雜度和耦合度。

4. 使用輕量級通信協議

微服務架構中,服務之間的通信協議時非常重要的。因為在一些對性能要求較高的場景里,選擇一個輕量級協議所能帶來的 QPS 提升,也是非常客觀的。

比如服務間可以使用 REST、GRPC 或消息隊列等通信協議,這樣可以盡可能減少服務通信帶來的開銷并提升性能。

5. 服務發現

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

并且服務實例的數量和狀態都是隨著業務需求和故障情況而變化的,還需要有能夠及時感知服務實例的上線、下線、故障等情況的能力。

因此我們需要使用服務發現組件,它負責自動發現服務實例,負載均衡和故障轉移。

服務發現組件有 Eureka 、Consul、Nacos 等,國內的話,推薦大家使用 Nacos。

6. 數據庫隔離

微服務架構下,每個服務的數據庫應該都是單獨部署的,它們之間相互隔離。

一個服務要操作另一個服務數據庫中的數據時,都應該只能通過調用另一個服務的接口來實現,而不是粗暴的直接訪問其他服務的數據庫進行讀寫。

數據庫隔離的最終目標就是為了減少服務之間的耦合,使它們能夠獨立發展。

7. 實施彈性模式

為了提高微服務架構中各個服務的彈性,我們應該盡量使用彈性模式。

所謂彈性,其實就是服務的可用性,專業一點的話說就是從某些類型的故障中恢復并保持自身服務的能力。

那么,我們應該如何實施實施彈性模式嘞?

其實很簡單,我給大家分成兩個部分進行講解,一個是服務內,另一個是服務外。

服務內指的是別人調用我們的服務時,需要注意的點有,

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

服務外指的是我們調用別人的服務時,需要注意的點有,

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

8. 服務監控于鏈路追蹤

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

特別是在微服務系統,系統間的服務調用鏈路越長,發生異常時的排查難度就越大。

所以為了跟上微服務的步伐,我們需要發現各個服務中存在的問題。進一步也就需要針對微服務的性能、狀態、異常等指標進行收集、分析、展示和告警。這有助于提高系統的可觀察性、可運維性和可靠性。

鏈路追蹤是一種技術,用于監控和分析分布式系統中的請求流程,以及各個服務之間的調用情況。

在分布式系統中,鏈路追蹤就是為每個請求分配一個全局唯一的標識(TraceId),并在請求在各個服務之間傳遞時,記錄每個服務的調用信息(SpanId),包括調用時間、耗時、狀態等。通過收集、存儲、展示和分析這些信息,就可以還原出請求的完整鏈路,以及各個服務的性能表現。

在如今流行云原生的潮流下,推薦使用 Prometheus、Grafana 為微服務構建全面的監控能力,使用 Skywalking 為微服務構建一套性能分析以及鏈路追蹤平臺。

9. 服務的安全性

微服務架構中,各個服務的安全性設計也非常重要。

常見的有如下幾種安全性設計的舉措,

  • API 網關:使用 API 網關作為服務的統一入口,對所有進入和離開的請求進行鑒權、路由、負載均衡、限流、緩存等功能,提高服務的可用性和性能,同時也增加了服務的安全性,防止內部服務被直接訪問或攻擊。
  • 令牌安全:使用 JWT、OAuth 2.0 等標準化的令牌格式和協議來實現服務之間或服務與客戶端之間的身份驗證和授權,防止服務被冒充或濫用。
  • 請求過濾:對 API 網關所接收到的所有請求數據,進行 SQL 注入攻擊、XSS 攻擊和 CORS 攻擊過濾攔截處理。
  • 風控報警:在 API 網關添加風控措施,針對發起惡意請求的用戶做黑名單風控處理,針對服務內部的非業務異常進行報警通知。

10. 統一日志采集

分布式系統中,各個服務的日志都位于不同的機器上,因此機器越多,日志統一采集的需求就越強烈。

統一日志采集是微服務架構中的一個重要的運維需求,它負責收集和管理分布式系統中的各種日志,如運行日志、訪問日志、錯誤日志等,以便于進行問題排查、性能分析、數據挖掘等。

推薦使用 ELK 或者 Graylog 搭建一套統一日志采集平臺。

因為我使用 Graylog 比較多,所以這里給大家推薦了解一波 Graylog 這個統一日志采集平臺。

Graylog 是一個開源的集中式日志管理系統,它可以收集、存儲、分析、展示和告警各種機器數據,為開發團隊提供安全、應用和 IT 基礎設施方面的問題的答案。

微服務開發,這10個點你要知道(微服務 開發)

Graylog 可以讓我們在一個美觀的 web ui 界面上組合、關聯、查詢所有的日志數據。

微服務開發,這10個點你要知道(微服務 開發)

Graylog 具有以下特點和優勢:

  • 高性能:Graylog 可以處理每秒數百萬條日志,支持多節點集群,實現水平擴展和負載均衡。
  • 易用性:Graylog 提供了一個友好的 Web 界面,讓您可以輕松地構建復雜的查詢,創建自定義的儀表盤,設置靈活的告警規則,生成定期的報告等。
  • 靈活性:Graylog 支持多種日志來源,如文件、網絡、數據庫、應用程序等,可以通過插件和 API 進行擴展和集成,滿足不同的業務需求和場景。
  • 安全性:Graylog 支持使用 HTTPS、SSL/TLS 等加密技術來保護日志數據的傳輸和存儲,同時也支持使用 LDAP、OAuth 2.0 等認證和授權機制來控制用戶的訪問權限。

Graylog 使用教程:https://learn.microsoft.com/zh-cn/azure/network-watcher/network-watcher-analyze-nsg-flow-logs-graylog

最后聊兩句

本文為大家介紹了微服務架構中的 10 個最佳實踐。包含 1. 不使用微服務架構、2. 針對失敗場景進行處理、3. 構建小型服務、4. 使用輕量級通信協議、5. 服務發現、6. 數據庫隔離、7. 實施彈性模式、8. 服務監控以及鏈路追蹤、9. 服務安全性、10.統一日志采集。

說了這么多,其實還是希望大家結合自身項目背景,多多思考,不要為了使用微服務而去使用微服務,在已經使用了微服務架構中項目,能夠結合上述最佳實踐,加上自己對各個服務以及業務上的思考,去解決哪些已存在的問題。這樣才算是真正學會了微服務。

關注我每周分享技術干貨、開源項目、實戰經驗、國外優質文章翻譯等,您的關注將是我的更新動力!

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年5月9日 下午4:33
下一篇 2024年5月9日 下午4:45

相關推薦

中文字幕在线播放视频| 1313午夜精品理伦片| 国产青榴视频在线观看| 久久久久国产视频| 91福利视频免费观看| 穿长筒袜的有夫之妇hd中文| 日本精品在线观看视频| 夜栋病勤1一12在线观看| 国产午夜精品理论片| 亚洲欧美日韩国产精品26u| 中文字幕免费在线观看| 青青青青青草原| 欧美黑人xxxx性高清版| 无码人妻精品一区二区在线视频 | 亚洲精品自产拍在线观看动漫| 99精品视频在线观看免费播放| 在线视频免费观看a毛片| aa级毛片毛片免费观看久| 国产精品无码无片在线观看| 456在线视频| 国产在线观看精品香蕉v区| 老婆~我等不及了给我| 啊用力太猛了啊好深视频免费| 用劲好爽快点要喷了视频| 亚洲综合区小说区激情区| 欧洲美熟女乱又伦免费视频| 亚洲Av高清一区二区三区| 无码毛片视频一区二区本码| 中文字幕不卡一区| 在线国产你懂的| 2023悦平台今天最近新闻| 国产又黄又大又粗的视频 | 国产成人精品久久综合| 色妞www精品视频观看软件| 又黄又爽免费视频| 欧美高清69hd| 亚洲午夜精品一级在线播放放| 日本熟妇人妻xxxxx人hd| 中文字幕第3页| 在线观看国产一区二区三区| 69p69国产精品|