中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微服務是什么意思

發布時間:2022-01-07 16:55:17 來源:億速云 閱讀:429 作者:柒染 欄目:系統運維

本篇文章給大家分享的是有關微服務是什么意思,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

 微服務microservice

微服務是指提供單個業務功能的服務,從技術角度看就是一種小而獨立的處理過程,類似流程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數據庫。

一個復雜軟件架構是由很多這樣小而獨立運行(有自己的端口)微服務組成,這些獨立處理組件之間通訊是通過與語言無關的API進行,簡單協議有同步性質的RMI/RPC和  RESTful Web Services,異步的消息推送和Reactive方式。

這些模塊化的方式能夠使得公司將項目分解分散到多個開發團隊,跨不同業務部門,提供非常充分的靈活性,幫助提高項目的生命周期,加快項目開發完成效率。

每個微服務組件都有自己分配的存儲  內存和CPU資源,這就使得硬件利用更加易于優化和跟蹤,特別是在基于云的Pass環境,開發團隊可以使用他們喜歡的技術,任何語言都可以,只要確保微服務之間是可交互的,能夠組合起后面的應用。

當管理復雜性會因為采取微服務架構而降低,通常更新其中一個微服務組件不會引起連鎖反應,因為微服務之間是松耦合的。

目前使用微服務的企業有:Netflix Twitter Amazon Web Services (AWS), Google, eBay等。

因為有很多應用和服務部署在基于云主機的環境中,微服務架構將會嚴重依賴容器技術,容器隔離了微服務處理過程,將一個應用切分為一個個小的實例,這些容器中的小實例有自己的端口和虛擬化環境。

廣泛使用的容器技術是Docker, 一種基于Linux的開源實現,由很多軟件公司支持如 Canonical, Red Hat,和Parallels.  PaaS服務支持包括Google App Engine, Red Hat Open Shift,和VMware的 Cloud Foundry,。

微服務架構不只是傳統服務變微變小。微服務兩個顯著特點是:

  1. 鴻蒙官方戰略合作共建——HarmonyOS技術社區

  2. 微服務本身是無狀態的;

  3. 微服務之間很少可變共享。

可以設想一下,如果微服務之間可以共享,那么帶來兩個問題:微服務團隊之間需要合作,因為共享的是一個統一數據庫,如果這種共享沒有帶來溝通成本,沒有破壞一個團隊就能搞定的宗旨,那么這種共享數據庫也是可以考慮,但是這種情況很少,大部分團隊因為共享問題破壞了獨立性;再者,微服務如果使用Docker分別打包在一個容器中,這些容器可能是跨不同基礎設施部署,部署方式很靈活,是一種cloud  native應用,而共享數據庫屬于底層基礎設施,顯然提高了部署難點。

另外,傳統服務之間通訊無論是RPC/RMI或是Http/RESTful都是同步的,而微服務之間通信應該是異步的或reactive的,也就是非同步的。根據FLP不可能原理,網絡默認是不可靠的,RPC在一旦發生網絡堵塞會連環爆炸,事后監控并不能根本解決這個問題,需要從CAP定理角度進行平衡設計,引入事件驅動或Pub/Sub消息方式能在提高網絡容錯性的同時,保證數據最終一致性,柔性事務是微服務環境的主要選擇。

傳統服務變成鐵板一塊經常是因為事務處理要求,某個服務方法的代碼很多,需要塞在同一個事務邊界內,雖然這帶來了高一致性的,但是擴展性比較差,因為同一個事務邊界內的動作無法分離到幾個微服務中,因此,使用微服務必須積極擁抱最終一致性,對分布式系統以及CAP定理有一定理解。當然,這些都是必須有多個微服務調用的情況下才需要考慮,由于微服務粒度小且專一,可以通過組合替代共享繼承的思路,容忍代碼有一定的重復性。

一個微服務架構需要具備以下條件:

  • 基礎監視 測量和健康檢查

  • 分布式日志 跟蹤

  • 針對每個服務,不只是隔離代碼,還需要在構建+測試+打包+提交整個環節隔離。

  • 能清晰定義每個服務的上下游、編譯時間和運行依賴。

  • 掌握如何構建、暴露和維護好的API和合約。

  • 需要尊重b/w和f/w兼容性,即使你可能不同時是你生產的服務的消費者。

  • 好的單元測試和更具有可讀性

  • 注意微服務與模塊和庫包區別,以及分布式整體型monolith, 協同版本發布,數據庫驅動繼承的區別。

  • 知道基礎設施的自動化

  • 需要基于CI/CD持續集成/持續遞交的基礎設施

服務劃分:

  • 根據業務能力界定服務的范圍

  • 根據領域驅動設計中子域的概念界定服務的范圍

通訊模式:

  • 使用基于RPC的同步通訊方式

  • 使用異步消息進行服務間通訊

外部API:

  • API 網關(API gateway) - 為每一類客戶端提供一個訪問服務的獨特接口

  • 服務前端的后端(Backend for front-end) - 為每一類客戶端都提供一個獨立的 API 網關

數據管理:

  • 每個服務都擁有它私有的數據庫特接口

  • 服務之間共享同一個數據庫

  • 使用事件來維護服務間的數據一致性 事件溯源/CQRS

運維監控:

  • 服務的發現:通過第三方模塊來進行服務實例信息到服務注冊表的注冊過程

  • 分布式追蹤(Distributed tracing)new -  在服務代碼中針對每一個外部訪問,都分配一個服務標識符,并在跨服務訪問時傳遞這個標識符以供追蹤分布式引發

  • 斷路器(Circuit Breaker) - 當遠端服務返回的故障率超過一定的閥值時,客戶端代理(比如 API  網關)對遠程服務的調用將立刻返回失敗的信息

以上就是微服務是什么意思,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳谷县| 宜阳县| 鄱阳县| 遵义县| 郁南县| 赣州市| 黄浦区| 香格里拉县| 霍山县| 井陉县| 民县| 唐海县| 舞钢市| 科技| 荆州市| 玛纳斯县| 辰溪县| 元阳县| 大悟县| 开鲁县| 亳州市| 黑河市| 泸水县| 湘潭市| 朝阳市| 衢州市| 安国市| 东丰县| 石泉县| 华阴市| 隆尧县| 北川| 汪清县| 长阳| 阳原县| 察隅县| 长岛县| 黄龙县| 三亚市| 鲁山县| 剑川县|