微服務的特點與功能
微服務特點
- 按照業務來劃分服務,單個服務程式碼量小,業務單一,易於維護。
- 每個微服務都有自己獨立的基本元件,例如資料庫、快取等,且執行在獨立的程序中。
- 微服務之間的通訊是通過HTTP協議或者訊息元件,且具有容錯能力。
- 微服務有一套服務治理的解決方案,服務之間不耦合,可以隨時加入和剔除服務。
- 單個微服務能夠叢集化部署,並且有負載均衡的能力
- 整個微服務系統應該有一個完整的安全機制,包括使用者驗證、許可權驗證、資源保護等。
- 整個微服務系統有鏈路追蹤的能力。
- 有一套完整的實時日誌系統。
微服務功能
- 服務的註冊和發現
- 服務的負載均衡
- 服務的容錯
- 服務閘道器
- 服務配置的統一管理
- 鏈路追蹤
- 實時日誌
微服務相關概念
- 服務註冊是指向服務註冊中心註冊一個服務例項,服務提供者將自己的服務資訊(如服務名、IP地址等)告知服務註冊中心。
- 服務發現是指當服務消費者需要消費另外一個服務時,服務註冊中心能夠告知服務消費者它所要消費服務的例項資訊(如服務名、IP地址等)。通常情況下,一個服務即使服務提供者,也是服務消費者。
- 服務心跳:通常一個服務例項註冊後,會定時向服務註冊中心提供“心跳”,以表明自己還處於可用的狀態。
- 負載均衡:服務消費者整合負載均衡元件,該元件會幫助服務消費者獲取服務註冊列表資訊,並每隔一段時間重新重新整理獲取該列表。當服務消費者消費服務時,負載均衡元件獲取服務提供者所有例項的註冊資訊,並通過一定的負載均衡策略(可以自定義配置),選擇一個服務提供者的例項,向該例項進行服務消費,這樣就實現了負載均衡。
- 熔斷器:在分散式系統中,當用戶的請求處於阻塞狀態,並高併發的場景下,短時間內會導致伺服器的執行緒資源消耗殆盡,最後導致整個系統處於癱瘓的狀態也不就是雪崩效應,分散式系統引進了熔斷器機制。
- 熔斷器存在的意義:
- 將資源進行隔離,如果某個服務裡的某個API接口出現了故障,只會隔離該API介面。不會影響到其他API介面。
- 服務降級的功能。當服務處於正常的狀態時,大量的請求在短時間內同時湧入,超過了服務的處理能力,這時熔斷器會被開啟,將服務降級,以免伺服器因負載過高而出現故障。
- 自我修復能力。當因某個微小的故障,例如網路服務商的問題,導致網路在短時間內不可用,熔斷器被開啟。
- 服務閘道器:微服務系統通過將資源以API介面的形式暴露給外界來提供服務。在微服務系統中,API介面資源通常是由服務閘道器(也稱API閘道器)統一暴露,內部服務不直接對外提供API資源的暴露。通常情況下,閘道器層以叢集的形式存在。在服務閘道器層之前,有可能需要加上負載均衡層,通常為Nginx雙機熱備,通過一定的路由策略,將請求轉發到閘道器層。到達閘道器層後,經過一系列的使用者身份驗證、許可權判斷,最終轉發到具體得服務。具體的服務經過一系列的邏輯運算和資料操作,最終將結果返回給使用者。
- 服務閘道器存在的意義:
- 閘道器將所有的API介面資源統一聚合,對統一聚合,對外統一暴露,外界系統呼叫的API介面都是閘道器對外暴露的API介面。
- 閘道器可以做一些使用者身份認證、許可權認證,防止非法請求操作API介面,對內部服務起到保護作用。
- 閘道器可以實現監控功能,實時日誌輸出,對請求進行記錄。
- 閘道器可以用來做流量監控,在高流量的情況下,對服務進行降級。
- API介面從內部服務分類出來,方便做測試
- 服務鏈路追蹤:去跟進一個請求到底有哪些服務參與,參與的順序又是怎樣的,從而使每個請求鏈路清晰可見,出了問題很快就能定位。
相關推薦
微服務的特點與功能
微服務特點 按照業務來劃分服務,單個服務程式碼量小,業務單一,易於維護。 每個微服務都有自己獨立的基本元件,例如資料庫、快取等,且執行在獨立的程序中。 微服務之間的通訊是通過HTTP協議或者訊息元
微服務架構與實踐及雲原生等相關概念
定時 服務器端 body 內容 開放封閉原則 logs 方法 服務架構 binding 微服務架構與實踐 筆記:《微服務架構與實踐》 王磊 著 一 單塊架構 1 定義:對於這種功能集中、代碼和數據中心化、一個發布包、部署後運行在同一進程的應用程序,我們通常稱之為單塊架構
微服務理論與實踐(三)-微服務架構的基本能力和優缺點
控制臺 並且 提高 str love 速度 ont 寫入 框架 1.微服務架構模式方案 微服務架構采用Scale Cube方法設計應用架構,將應用服務按功能拆分成一組相互協作的服務。每個服務負責一組特定、相關的功能。每個服務可以有自己獨立的數據庫,從而保證與其他服務解耦。
Spring Cloud 微服務設計與實踐
quic AS PC huang 位置 拓撲 uri 支持 特性 整理微服務設計與實踐歷程,共享給大家。 微服務的描述 The description of microserivce by Martin Fowler : 根據業務模塊劃分服務種類。 每個服務可以獨立部署並
微服務架構與服務治理
希望 幫助 翻譯 commons 部署 點擊 foundry ons PE Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和
【EBook】-NO.161.微服務.1 -【微服務架構與實踐】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of Mastery:5 Practical Level:5 Desired Goal:5 Arc
10. 微服務理論與實踐-服務註冊與發現
微服務理論與實踐-服務註冊與發現 微服務理論與實踐-服務註冊與發現 1 背景 2 方案 2.1 客戶端服務發現 2.2 客戶端服務發現的優缺點
9. 微服務理論與實踐-微服務架構的基本能力和優缺點
微服務理論與實踐-微服務架構的基本能力和優缺點 微服務理論與實踐-微服務架構的基本能力和優缺點 1 微服務架構模式方案 2 微服務架構的基本能力 2.1 Restful 輕量級通訊的首選方式 2.2 RPC 通訊
spring cloud-之微服務cap與分散式事務
最近把我所做的一個專案改成分散式的,把幾個元件都跑了一篇,對於分散式算是有了初步的瞭解。發現很多部落格都是在用十分簡單的hello world來做例子,的確這對於學習是比較不錯的,但是太不實用了。例如在我的這個專案(貴金屬遞延交易系統(聯合工行、中行、建行舉辦的一個貴金屬交易大賽的系
微服務架構與實踐 學習筆記(1)
參考:微服務架構與實踐 第二章 微服務架構的“微”應該遵循的兩個基本前提: 業務獨立性。應該保證微服務是具有業務獨立性的單元,並不能只是為了微而微。可以將某一領域的模型作為獨立的業務單元,譬如訂單、產品、合同等,也可以將某業務行為作為獨立的業務單元,譬如傳送郵件、單點登入
Spring Cloud實戰(一):微服務註冊與微服務發現
沒有Spring Cloud,Spring Boot的實用性要大打折扣。 單個微服務雖然開發簡單、維護方便,但是沒有協作功能的微服務,其實在企業裡並沒有顯著的競爭力,跟NodeJS比起來,JAVA開發微服務並沒有多大的優勢。 但是有了Spring Cloud,將多個微
Android短視訊開發一定要分析的特點與功能
短視訊APP已經是所有手機使用者的“老朋友”了,它的威力幾乎可以說是無人不知無人不曉,這種熱度甚至影響到了Android短視訊開發的熱度。但可能很少有人系統地分析過,他的個性特點是什麼,都有什麼核心功能。 一、短視訊APP的個性特點: 1. 短視訊時長短衝擊力大,很少的時間就能看完一篇視訊 3.
微服務架構與持續交付關係
本文主要參考《微服務架構與實踐》(王磊,博文視點,2016.1),架構師必看:微服務架構綜述 - 帳前卒 專欄 - CSDN部落格 https://blog.csdn.net/cctt_1/article/details/78344253,https://www.ji
微服務架構與SOA架構的區別
一、面向服務的架構SOA 面向服務的架構是一種軟體體系結構,應用程式的不同元件通過網路上的通訊協議向其他元件提供服務。通訊可以是簡單的資料傳遞,也可以是兩個或多個服務彼此協調連線。這些獨特的服務執行一些小功能,例如驗證付款、建立使用者帳戶或提供社交登入等。
基於SpringCloud的微服務設計與實現
Spring Boot是在 2013年推出的新專案,主要用來簡化Spring 開發框架的開發、配置、除錯、部署工作,同時在專案內集成了大量易於使用且實用的基礎框架[[i]]。使用Spring Boot開發專案,可以做到一鍵啟動和部署,整個開發過程得到了很大的簡化。Sp
微服務註冊與發現 —— eureka
微服務 在微服務系統中,服務的註冊和發現是第一步,常用的有: Eureka:https://github.com/Netflix/eureka Zookeeper:https://zookeeper.apache.org/ Consul:https://www.consul
微服務註冊與發現
目錄 簡介 實現服務註冊元件 設計服務登錄檔資料結構 搭建應用程式框架 定義服務登錄檔介面 使用 ZooKeeper 實現服務註冊 服務註冊模式 實現服務發現元件 搭建應用程式框架 實現服務發現 服務發現優化方
華為FusionStage PaaS平臺技術探祕之微服務執行與治理框架
一、哪些應用適合用在微服務上? 沒有太標準的說法,主要看應用的實際情況。 1、應用希望使用在雲場景下。 首先這個應用是想用在雲的場景上的。這個是前提。在雲場景上應用會更靈活、更快上線。雲上有它自身的特點,比如雲上系統執行環境是容器或虛機,並不像傳統場景下是物理伺服器。
微服務概述與SpringCloud
1.1 微服務與微服務架構 業界大牛馬丁.福勒(Martin Fowler) 這樣描述微服務: 論文網址: https://martinfowler.com/articles/microservices.html _ 微服務 強調的是服務的大小,它關注的是某一個點,是具體解決某一個問
微服務架構與傳統SOA幾個主要區別
一、從服務拆分粒度考慮,微服務體系中的微服務是單一用途的(做一件事,做好它),而在SOA架構中,服務元件大小可以是小型應用程式服務,也可以是大型的企業應用服務。在很多使用SOA架構的系統中,粒度很大,單