成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用Spring Boot和Cloud實現微服務

譯文
開發 架構
本文將向您介紹如何使用Spring Boot和Cloud來實現微服務的基本部署和相互通信。

【51CTO.com快譯】近年來,憑借著其架構中的各項優勢,微服務體系架構已經成為了應用程序開發的首選項。但是不可否認的是,每一種架構都有自身的短板,微服務架構也不例外。例如:在微服務架構中,我們可以部署許多被獨立開發出來的服務,以提供在某些特定場景下的功能。不過,它們需要通過不同的API或事件,來實現彼此之間的通信。有時,它們甚至需要與某些外部系統進行通信,以實現完整的系統功能。

雖然我們在開發的過程中,需要最小化某個微服務對于其他微服務的直接依賴性。但是在某些情況下,這是不可避免的。因此,我們需要在開發和部署微服務時,全面考慮并管理好諸如:服務發現(Service Discovery)、斷路器(Circuit Breaker)、分布式跟蹤(Distributed Tracing)、路由、連接器(Connector),配置(Configurations)等關系。

首先,我為您準備了如下關系圖。它向您展示了如何使用Spring Boot去構建微服務,以及如何使用Spring Cloud去部署和管理微服務。

 

如上圖所示,我用到了Spring Cloud所提供的各種產品。下面我將解釋每個組件能夠解決的實際問題。

  • Spring Cloud Gateway — 如下圖所示,那些所有來自互聯網(Web或OpenAPI)的、對于微服務的調用,都應當經由Gateway,以處理路由和交互(Cross-Cutting)之類的問題,其中包括:安全性、監控、以及魯棒性等方面。有關如何使用Spring Cloud來構建Gateway的內容,請訪問https://spring.io/projects/spring-cloud-gateway。

 

  • 配置服務器(Config Server) – 如下圖所示,微服務往往自帶有許多配置,而這些配置對于系統整合測試(System Integrate Test,SIT)、用戶驗收測試(User Acceptance Test,UAT)、以及生產環境(PROD)都有所不同。因此,無論是在應用的外部,還是在其內部中心位置,這些配置都應該可以被直接管理和維護。此外,如果配置中有任何需要更改的地方,其應用代碼也不應被迫做相應的修改。Spring Cloud Config就能夠為分布式系統中的各種外部配置,提供服務器端和客戶端的支持。使用Config Server,您可以在中心位置管理所有當前環境中應用程序的外部屬性。如果您想了解更多有關如何使用Spring Cloud,來輕松創建Config Server的詳細內容,請參見--https://spring.io/projects/spring-cloud-config。

 

  • 服務注冊表(Service Registry) - 各類用戶或服務需要使用不同類型的客戶端或服務器端發現,來確定向它們發送請求的服務實例的具體位置。可是,問題在于:這些服務的客戶該如何知道那些對于每個環境都不盡相同的,可用的服務實例呢?業界常用的解決方案是實施Service Registry。它是針對各種可用服務、及其實例與位置的數據庫。畢竟各類服務實例在啟動的時候,都已經在服務注冊表中注冊過了。在此,Eureka Server能夠幫助我們創建對應的Service Registry服務器,并將所有其他的服務都注冊上去。如果您想創建并啟用自己的注冊表服務器,請使用spring-cloud-starter-netflix-eureka-server依賴項,以及@EnableEurekaServer。
  • Eureka Discovery Client – 不同的服務之間需要互相調用。如今,大多數微服務都是部署在虛擬機或容器化的環境之中,而且服務實例的數量、及其位置也是經常動態變化的。因此,我們需要實現一種機制,以使得服務客戶端能夠對那些動態更改的服務實例集發出請求。在此,Eureka Discovery Client正好派上用場。它可以幫助我們從Eureka服務注冊表中獲取已注冊的相關服務。據此,Spring Cloud能夠很容易地實現服務發現。如下圖所示,只要Spring Cloud Netflix和Eureka Core在類路徑(classpath)上,任何使用@EnableEurekaClient的Spring Boot應用,都會嘗試著用http://localhost:8761(其默認值為eureka.client.serviceUrl.defaultZone)與Eureka服務器聯系。

 

  • Zipkin Server - 在分布式系統中,僅了解一個實例的狀態是遠遠不夠的。我們往往需要匯總服務中所有實例的矩陣、日志和跟蹤信息,以洞察到那些特定事務所采用的路徑。在此,我們需要用到分布式跟蹤(也稱為請求跟蹤,請參見--https://opensource.com/article/18/9/distributed-tracing-microservices-world)。它通過遵循一系列系統內部的整體操作,以查明發生故障的原因,以及性能欠佳的根源。作為一個分布式跟蹤系統,Zipkin(https://zipkin.io/)的功能主要包括數據的收集和查找。也就是說,它能夠協助收集服務架構中與延遲問題有關的各種時序數據(timing data)。因此,Spring Cloud在其整體方案中添加了zipkin,并據此推出了Spring Cloud Sleuth(https://spring.io/projects/spring-cloud-sleuth#overview),為分布式跟蹤提供了Spring Boot的自動化配置。
  • 斷路器(Circuit Breaker,Hystrix) — 在微服務架構中,如果某個服務不可用,那么當另一個服務同步調用它時,就可能會花費過多時間去等到響應,同時讓會調用方消耗各種線程之類的資源。顯然,如果資源被耗盡,調用服務將無法處理其他類型的請求。因此,為了防止此類網絡或服務的故障,波及到其他服務,我們需要使用斷路器模式,來構建具有容錯和魯棒性的系統,以保證當關鍵服務不可用、或出現高延遲時,該系統仍可正常運行。在Spring Cloud體系中,我們可以通過Hystrix(https://spring.io/projects/spring-cloud-circuitbreaker)來實現該目的。如果您想具體了解如何在Spring boot應用中使用Hystrix,請參見教程--https://dzone.com/articles/microservices-part-4-spring-cloud-circuit-breaker。此外,Spring Cloud還提供了一個不錯的儀表板,來監視Hystrix的各種命令狀態。您可以使用@EnableHystrixDashboard,這個主入口類,并通過Hystrix Dashboard Starter來創建一個Spring Boot應用程序。

Spring Feign Client - 在微服務架構中,服務與服務之間的通信可謂“家常便飯”,而您往往需要使用某種機制來調用(invoke)另一個服務。作為一種聲明性的Rest Client,Spring Feign Client能夠創建一個用JAX-RS或Spring MVC注釋所修飾的接口。如下圖所示,此類的動態實現非常容易被使用。

 

至此,想必您已經能夠通過上述介紹,了解了如何使用Spring Boot和Cloud來實現微服務的相關知識與流程。如果您感興趣的話,可以自己動手嘗試著編寫一套簡單的服務例子。

【原標題】Microservices Implementation using (Spring Boot and Cloud) (作者: Nitesh Gupta )

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:武曉燕 來源: 51CTO
相關推薦

2024-07-10 10:51:39

SpringEureka數據中心

2017-09-05 14:05:11

微服務spring clou路由

2022-10-10 08:00:00

微服務Spring Boo容器

2018-07-09 09:27:10

Spring Clou微服務架構

2021-12-14 06:59:39

微服務Kubernetes架構

2024-02-06 18:05:54

微服務SpringCloud

2018-06-01 23:08:01

Spring Clou微服務服務器

2024-08-05 10:03:53

2017-06-26 09:06:10

Spring Clou微服務架構

2022-02-12 21:08:56

微服務SpringIstio

2023-12-19 09:33:40

微服務監控

2018-05-04 15:27:22

Spring Boo Web開發

2018-03-16 09:36:04

微服務Spring ClouDubbo

2025-02-28 09:40:21

SidecarSCA服務

2017-09-04 16:15:44

服務網關架構

2023-03-20 08:00:00

公共云開發Spring Clo

2024-11-21 16:09:22

2021-10-19 14:02:12

服務器SpringSecurity

2017-07-03 09:50:07

Spring Clou微服務架構

2017-12-20 15:37:39

Spring Clou微服務架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久久 | av天天澡天天爽天天av | 国产精品成人一区二区 | 国产免费一级片 | 亚洲国产二区 | 日本黄视频在线观看 | 亚洲婷婷六月天 | 免费看黄视频网站 | 欧美极品一区二区 | 中文字幕视频一区二区 | 亚洲成a人片| 亚洲精品一区国产精品 | 日韩精品一区二区三区 | 国产91丝袜在线18 | 国产成人福利视频在线观看 | 国产精品成人在线播放 | 精品日韩一区 | 免费啪啪 | 天堂久久天堂综合色 | 亚洲精品福利视频 | 国产午夜三级一区二区三 | 五月综合久久 | 偷拍亚洲色图 | 欧美成人一区二免费视频软件 | 亚洲高清网 | 日日夜夜91 | 精品一区二区三区在线观看 | 蜜桃综合在线 | 日韩不卡一二区 | 999久久久久久久久 国产欧美在线观看 | 久久久国产网站 | 欧美视频三区 | 久热m3u8 | 欧产日产国产精品视频 | 日韩欧美视频免费在线观看 | 综合国产第二页 | 日本高清视频在线播放 | 国产一区在线视频 | 日韩国产在线 | av男人的天堂在线 | 日韩一区二区三区四区五区六区 |