国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了微服務開發(fā),這10個點你要知道。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

微服務架構(gòu)有許多優(yōu)點,例如提高系統(tǒng)的可擴展性、可維護性、可測試性和故障容忍性。

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

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

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

1. 不使用微服務架構(gòu)

沒錯,我們應該盡量避免使用微服務架構(gòu)。

認真地說,使用微服務架構(gòu)只能被視為最后的選擇。從項目實際應用場景開發(fā),少看一些網(wǎng)上關(guān)于微服務的吹捧。務實一點,根據(jù)項目體量、業(yè)務復雜度選擇一個適合當前項目的架構(gòu)。

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

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

在任何使用微服務的分布式系統(tǒng)里面,總是有調(diào)用失敗的可能,比如網(wǎng)絡分區(qū)、某個服務宕機不可用等。

所以我們在系統(tǒng)調(diào)用層面針對失敗場景的處理,應該設計得越早越好。

故障設計最好三個級別,

  • 基礎設施級別
  • 數(shù)據(jù)庫級別和
  • 單個微服務級別

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

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

3. 構(gòu)建小型服務

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

每個微服務應該只負責一個業(yè)務領(lǐng)域,并且盡量避免涉及其他領(lǐng)域。

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

4. 使用輕量級通信協(xié)議

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

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

5. 服務發(fā)現(xiàn)

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

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

因此我們需要使用服務發(fā)現(xiàn)組件,它負責自動發(fā)現(xiàn)服務實例,負載均衡和故障轉(zhuǎn)移。

服務發(fā)現(xiàn)組件有 Eureka 、Consul、Nacos 等,國內(nèi)的話,推薦大家使用 Nacos。

6. 數(shù)據(jù)庫隔離

微服務架構(gòu)下,每個服務的數(shù)據(jù)庫應該都是單獨部署的,它們之間相互隔離。

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

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

7. 實施彈性模式

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

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

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

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

服務內(nèi)指的是別人調(diào)用我們的服務時,需要注意的點有,

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

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

  • 調(diào)用超時
  • 請求重試
  • 斷路器應用

8. 服務監(jiān)控于鏈路追蹤

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

特別是在微服務系統(tǒng),系統(tǒng)間的服務調(diào)用鏈路越長,發(fā)生異常時的排查難度就越大。

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

鏈路追蹤是一種技術(shù),用于監(jiān)控和分析分布式系統(tǒng)中的請求流程,以及各個服務之間的調(diào)用情況。

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

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

9. 服務的安全性

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

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

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

10. 統(tǒng)一日志采集

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

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

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

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

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

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

Graylog 可以讓我們在一個美觀的 web ui 界面上組合、關(guān)聯(lián)、查詢所有的日志數(shù)據(jù)。

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

Graylog 具有以下特點和優(yōu)勢:

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

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

最后聊兩句

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

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

關(guān)注公眾號【waynblog】每周分享技術(shù)干貨、開源項目、實戰(zhàn)經(jīng)驗、國外優(yōu)質(zhì)文章翻譯等,您的關(guān)注將是我的更新動力!文章來源地址http://www.zghlxwxcb.cn/news/detail-760426.html

到了這里,關(guān)于微服務開發(fā),這10個點你要知道的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • pyqt5, 如何在窗口上顯示10個點地循環(huán)進度條。

    要在PyQt5窗口上顯示從1個點逐漸增加到10個點,然后周而復始地循環(huán),可以使用PyQt5的圖形繪制功能和定時器來實現(xiàn)。以下是一個簡單的例子: import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPainter, QColor, QBrush from PyQt5.QtCore import Qt, QTimer class PointDisplay(QWidget

    2024年02月14日
    瀏覽(16)
  • 每個.NET開發(fā)都應該知道的10個.NET庫

    有個.NET面試官反饋面試了一個小白,問他用過哪些.NET庫,結(jié)果只回答上了幾個。作為一個.NET開發(fā)者,了解一些常用的.NET庫是非常重要的。本文將介紹.NET開發(fā)人員應該了解的10個常用.NET庫,這些庫可以幫助開發(fā)人員提高開發(fā)效率、簡化開發(fā)流程,開發(fā)出優(yōu)秀的.NET應用程序。

    2024年02月06日
    瀏覽(16)
  • 【必看】每個開發(fā)人員都應該知道的 10 個 GitHub 庫

    【必看】每個開發(fā)人員都應該知道的 10 個 GitHub 庫

    所有這些都將為你增加價值,并幫助你成為更好的 Web 或軟件開發(fā)人員,或同時成為兩者。 10 個 GitHub 倉庫 ================================================================================= 1. Free Programming Books GitHub??:183K + 提供各種不同語言的 Free Programming Books 無疑是 GitHub 上最受歡迎和好評度

    2024年04月18日
    瀏覽(24)
  • 寫點東西《每個開發(fā)人員都必須知道的 10 個 Git 命令》

    對于任何開發(fā)人員來說,了解 Git 和 GitHub 至關(guān)重要,它們提供了有效的版本控制和代碼管理。熟練掌握這些

    2024年02月02日
    瀏覽(23)
  • [七]【開源】基于PyQt的圖像算法開發(fā)軟件——手動圖像配準[通過可交互的四個點構(gòu)建仿射矩陣]

    [七]【開源】基于PyQt的圖像算法開發(fā)軟件——手動圖像配準[通過可交互的四個點構(gòu)建仿射矩陣]

    [一] 【開源】基于PyQt的圖像算法開發(fā)軟件——如何讓你開發(fā)效率翻倍 [二] 【開源】基于PyQt的圖像算法開發(fā)軟件——輸入來源[如何導入視頻進行目標檢測] [三] 【開源】基于PyQt的圖像算法開發(fā)軟件——步驟列表[低代碼實現(xiàn)圖像算法開發(fā)] [四] 【開源】基于PyQt的圖像算法開發(fā)

    2024年02月22日
    瀏覽(25)
  • 10種黑客類型,你知道幾種?

    10種黑客類型,你知道幾種?

    白帽黑客是指通過實施滲透測試,識別網(wǎng)絡安全漏洞,為政府及組織工作并獲得授權(quán)或認證的黑客。他們也確保保護免受惡意網(wǎng)絡犯罪。他們在政府提供的規(guī)章制度下工作,這就是為什么他們被稱為道德黑客或網(wǎng)絡安全專家。 他們通常被稱為黑客。黑帽黑客可以獲得未經(jīng)授權(quán)

    2024年02月01日
    瀏覽(18)
  • 一、開發(fā)環(huán)境window10微服務注冊中心搭建—Eureka

    一、開發(fā)環(huán)境window10微服務注冊中心搭建—Eureka

    簡述: Eureka 是天生集群的,搭建配置相當簡單:不論你有多少的機器部署,只要相互之間指定對方的 注冊中心 地址就可以了 ,而多個 Eureka Server 之間是通過復制的方式完成注冊服務的同步,遵循AP原則。 優(yōu)點: 從設計角度來看,Eureka可以說是無懈可擊,注冊中心、提供者

    2024年02月05日
    瀏覽(24)
  • 關(guān)于 GPT必須知道的10 個認知!

    自從 GPT-4 發(fā)布以來,短短十來天,人類像來到了一個完全不同的世界。如果未來書寫歷史, AI 時代的奇點,應是 GPT-4 正式對外發(fā)布的這一天:2023 年 3 月 15 日。 關(guān)于 GPT 的新聞報道,堪稱汗牛充棟,然而,不少認知,卻不一定正確。特將平時思考整理成文,供各位讀者參考

    2024年02月07日
    瀏覽(22)
  • Ubuntu服務器+win10+PyCharm遠程深度學習開發(fā)

    目標場景 :項目代碼以及數(shù)據(jù)集在Ubuntu遠程服務器上,使用ssh和sftp協(xié)議連接服務器,在個人電腦上進行遠程編輯、調(diào)試與運行,并使用遠程的資源,包括GPUs和CPU以及內(nèi)存等。 本人使用PyCharm較為習慣,之前有過使用vscode在較大C++項目上出問題的情況,所以偏向于使用P有Cha

    2024年02月06日
    瀏覽(51)
  • 你應該知道的 10 個 React Native 組件庫

    你應該知道的 10 個 React Native 組件庫

    編者注 :本文最后更新于 2022 年 12 月 15 日,以包含更新、更受歡迎的庫。 在構(gòu)建 React Native 應用程序時,最佳實踐涉及利用獨立的 UI 組件來加快開發(fā)時間。這個想法并不是 React Native 獨有的;它實際上是一種 React 哲學,是移動框架在很大程度上基于的哲學。 就像 React 允許

    2024年02月16日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包