微服務定義及.Net Core中用的技術

来源:https://www.cnblogs.com/xiao-feng/archive/2018/06/03/9129784.html
-Advertisement-
Play Games

微服務 定義: 它是一種架構模式,提倡將大的單體系統,按業務拆分成一個個較小且獨立的服務,服務與服務之前進行相互協作和配合。 歷史: 針對互聯網行業的蓬勃發展,需要支撐的業務越來越多,越來越大,單體程式越來越難以支撐,因此才出現了微服務的這種架構。 優點: 它的優點主要是與單體程式相比 1.開發獨立 ...


微服務 定義: 它是一種架構模式,提倡將大的單體系統,按業務拆分成一個個較小且獨立的服務,服務與服務之前進行相互協作和配合。 歷史: 針對互聯網行業的蓬勃發展,需要支撐的業務越來越多,越來越大,單體程式越來越難以支撐,因此才出現了微服務的這種架構。 優點: 它的優點主要是與單體程式相比 1.開發獨立:因開發獨立就可以使用不同的語言進行開發,這樣就更能發揮出各語言擅長的方面。 2.低耦合 :服務與服務間採用輕量級的通信機制相溝通(Http,tcp/id),當某一服務出現問題,可以通過“降級熔斷”等手段來保證系統不雪崩。 3.獨立部署:這個就厲害了,獨立部署帶給我們的就是快速的迭代,完全與現在的敏捷開發相符。 4.橫向擴展:這就是對於某一個服務的壓力大的時候,我們就可以針對這一個服務進行集群擴展,而不像原單體系統那樣,需要整個系統作擴展。 缺點: 1.因架構使各服務(系統)的顆粒度更小了,整體來說對開發和維護的難度就增加。(當然現在以雲的方式部署,因此能屏蔽一些問題) 2.因服務與服務之前的通信機制是網路的方式,因此對於單體的進程內通信就顯得運行效率降下來了。 原則: 1.單一職責:每個微服務只需要實現自己的業務邏輯就可以了,比如訂單管理模塊,它只需要處理訂單的業務邏輯就可以了,其它的不必考慮 2.服務自治:每個微服務從開發、測試、運維等都是獨立的,包括存儲的資料庫也都是獨立的,自己就有一套完整的流程,我們完全可以把它當成一個項目來對待。不必依賴於其它模塊。 3.輕量級通信:首先是通信的語言非常的輕量,第二,該通信方式需要是跨語言、跨平臺的,之所以要跨平臺、跨語言就是為了讓每個微服務都有足夠的獨立性,可以不受技術的鉗制。 4.介面明確:由於微服務之間可能存在著調用關係,為了儘量避免以後由於某個微服務的介面變化而導致其它微服務都做調整,在設計之初就要考慮到所有情況,讓介面儘量做的更通用,更靈活,從而儘量避免其它模塊也做調整。 使用: 服務拆分: 1.微服務拆分原則:領域模型、限定上下文、組織架構、康威定律 2.每個服務有自己的資料庫 3.微服務之間確定服務邊界,通過共用模型建立聯繫 數據一至性 1.使用最終一致性來代替強一致性 2.可靠性事件模式 3.補嘗模式 服務通信 1.通信技術方案: RPC vs REST vs 非同步消息 2.服務註冊和發現 3.負載均衡 服務網關 1.API Gateway 2.劃分前端服務的後端服務,移動端服務 3.身份認證、路由服務、限流防刷、日誌統計 高可觀察 1.健康檢測、集中監控 2.日誌聚合及檢索 3.分散式追蹤 可靠性 1.流量控制,超時控制 2.艙壁隔離,熔斷機制 3.服務降級, 冪等重試   微服務是近期興起的一種架構模式,因此再使用時,我們就會遇到不同的坑,比如需要依賴的中間件更新速度比較快,因此會造成每個版本在使用上的不同。因此在使用時請註意儘量選擇一些大公司已經使用的技術。   在.Net Core中使用的技術 服務治理髮現:Consul 熔斷降級:Poll 網關: Ocelot 身份認證:Identity Server RPC通信:Thirft 分散式配置中心:Apollo(阿波羅) 監控插件:App Metrics 分散式日誌收集框架: Exceptionless 時間序列資料庫:InfluxDB 開源儀錶盤工具:Grafana    


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡單爬蟲架構 動態運行流程 URL管理器的作用 URL管理器的3種實現方式 網頁下載器的作用 Python網頁下載器的種類 urllib2下載網頁的3種方法 網頁解析器的作用 Python的幾種網頁解析器 結構化解析依賴DOM樹 Beautiful Soup語法 代碼舉例: 1.創建Beautifu ...
  • 圖片修複程式 可用於水印去除 在現實的生活中,我們可能會遇到一些美好的或是珍貴的圖片被雜訊干擾,比如舊照片的摺痕,比如鏡頭上的灰塵或污漬,更或者是某些我們想為我所用但有討厭水印,那麼有沒有一種辦法可以消除這些雜訊呢? 答案是肯定的,依然是被我們用了無數次的OpenCV這款優秀的框架。 效果預覽 圖片 ...
  • 既然是Python程式員找美女,就要用python程式員的方法。 今天我們的目標是,爬社區的美女~而且,我們又要用到新的姿勢(霧)了~scrapy爬蟲框架~ 1scrapy原理 在寫過幾個爬蟲程式之後,我們就知道,利用爬蟲獲取數據大概的步驟:請求網頁,獲取網頁,匹配信息,下載數據,數據清洗,存入數據 ...
  • Java開源生鮮電商平臺-庫存管理設計與架構(源碼可下載) 說明:Java開源生鮮電商平臺-庫存管理設計與架構有以下幾個功能 WMS的功能:1、業務批次管理 該功能提供完善的物料批次信息、批次管理設置、批號編碼規則設置、日常業務處理、報表查詢,以及庫存管理等綜合批次管理功能,使企業進一步完善批次管理 ...
  • 轉載自:https://blog.csdn.net/jky_yihuangxing/article/details/53301834 很簡單,直接上代碼了。 ...
  • .Net Core的其中一種認證與授權模式是基於Cookie的,首先我們先創建一個.Net Core MVC 項目: 然後增加對頁面訪問的許可權控制,對要訪問的頁面Conytroller增加Authorize屬性,同時我們在start.cs中增加cookie許可權驗證的支持配置,這時候再去訪問需要許可權驗 ...
  • 1、基礎許可權版地址:http://www.eipflow.com:9998/Account/Login 2、購買後憑藉相關證明圖片聯繫作者:1039318332 建立git賬戶並告知用戶名及密碼,git地址 3、 ...
  • 第一種 第二種 怎麼看生成的sql語句的? 1)資料庫里 致博客園 1)傻逼的150字數限制! 2)範圍竟然不包括代碼! 3)添加成功修改失敗,似乎對修改很有意見! 致博客園 1)傻逼的150字數限制! 2)範圍竟然不包括代碼! 3)添加成功修改失敗,似乎對修改很有意見! 致博客園 1)傻逼的150 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...