大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 SpringCloud網(wǎng)關(guān)詳解

SpringCloud網(wǎng)關(guān)詳解

更新時間:2021-12-28 10:51:38 來源:動力節(jié)點 瀏覽2163次

介紹

在分布式環(huán)境中,服務(wù)之間需要相互通信。但是,這是服務(wù)間通信。我們還有一些用例,我們域外的客戶想要訪問我們的 API 服務(wù)。因此,要么我們可以公開所有可由客戶端調(diào)用的微服務(wù)的地址,要么我們可以創(chuàng)建一個服務(wù)網(wǎng)關(guān),將請求路由到各種微服務(wù)并響應(yīng)客戶端。

在這里創(chuàng)建網(wǎng)關(guān)是更好的方法。有兩個主要優(yōu)點 

不需要維護(hù)每個單獨(dú)服務(wù)的安全性。

而且,橫切關(guān)注點,例如元信息的添加可以在一個地方處理。

Netflix Zuul和Spring Cloud Gateway是兩個著名的 Cloud Gateway,用于處理此類情況。在本教程中,我們將使用 Spring Cloud Gateway。

Spring Cloud Gateway – 依賴設(shè)置

讓我們以我們一直在使用的 Restaurant 為例。讓我們在我們的兩個服務(wù),即餐廳服務(wù)和客戶服務(wù)之前添加一個新服務(wù)(網(wǎng)關(guān))。首先,讓我們使用以下依賴項更新服務(wù)的pom.xm

<dependencies>
   <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-gateway</artifactId>
   </dependency>
</dependencies>

然后,使用正確的注釋來注釋我們的 Spring 應(yīng)用程序類,即@EnableDiscoveryClient。

package com.tutorialspoint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class RestaurantGatewayService{
   public static void main(String[] args) {
      SpringApplication.run(RestaurantGatewayService.class, args);
   }
}

我們使用 @EnableDiscoveryClient 進(jìn)行注釋,因為我們想使用 Eureka 服務(wù)發(fā)現(xiàn)來獲取為特定用例提供服務(wù)的主機(jī)列表

帶網(wǎng)關(guān)的動態(tài)路由

Spring Cloud Gateway 具有三個重要部分。那些是 -

Route - 這些是網(wǎng)關(guān)的構(gòu)建塊,其中包含要轉(zhuǎn)發(fā)請求的 URL 以及應(yīng)用于傳入請求的謂詞和過濾器。

Predicate - 這些是一組標(biāo)準(zhǔn),應(yīng)與要轉(zhuǎn)發(fā)到內(nèi)部微服務(wù)的傳入請求相匹配。例如,只有當(dāng)傳入的 URL 包含該路徑時,路徑謂詞才會轉(zhuǎn)發(fā)請求。

過濾器- 在將請求發(fā)送到內(nèi)部微服務(wù)或響應(yīng)客戶端之前,您可以在這些地方修改傳入的請求。

讓我們?yōu)椴蛷d和客戶服務(wù)的網(wǎng)關(guān)編寫一個簡單的配置。

spring:
   application:
      name: restaurant-gateway-service
   cloud:
      gateway:
      discovery:
         locator:
            enabled: true
      routes:
         - id: customers
            uri: lb://customer-service
            predicates:
            - Path=/customer/**
         - id: restaurants
            uri: lb://restaurant-service
            predicates:
            - Path=/restaurant/**
server:
   port: ${app_port}
eureka:
   client:
      serviceURL:
         defaultZone: http://localhost:8900/eureka

關(guān)于上述配置的注意事項 

我們啟用了discovery.locator以確保網(wǎng)關(guān)可以從 Eureka 服務(wù)器讀取。

我們在這里使用了 Path 謂詞來路由請求。這意味著任何以 / customer開頭的請求都將被路由到 Customer Service 并且對于 / restaurant,我們會將該請求轉(zhuǎn)發(fā)給 Restaurant Service。

現(xiàn)在讓我們在網(wǎng)關(guān)服務(wù)之前設(shè)置其他服務(wù) 

啟動尤里卡服務(wù)器

開始客戶服務(wù)

啟動餐廳服務(wù)

現(xiàn)在,讓我們編譯并執(zhí)行 Gateway 項目。我們將使用以下命令進(jìn)行相同的操作

java -Dapp_port=8084 -jar .\target\spring-cloud-gateway-1.0.jar

完成后,我們準(zhǔn)備好在端口 8084 上測試網(wǎng)關(guān)。讓我們首先點擊 http://localhost:8084/customer/1,我們看到請求被正確路由到客戶服務(wù),我們得到以下輸出

{
   "id": 1,
   "name": "Jane",
   "city": "DC"
}

現(xiàn)在,點擊我們的餐廳 API,即 http://localhost:8084/restaurant/customer/1,我們得到以下輸出

[
   {
      "id": 1,
      "name": "Pandas",
      "city": "DC"
   },
   {
      "id": 3,
      "name": "Little Italy",
      "city": "DC"
   }
]

這意味著兩個調(diào)用都被正確路由到各自的服務(wù)。以上就是關(guān)于“SpringCloud網(wǎng)關(guān)詳解”的介紹,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Java在線學(xué)習(xí),里面的課程內(nèi)容豐富,由淺到深,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久草免费公开视频 | 中文字幕在线日韩 | 久久久久久亚洲精品影院 | 国产精品视频九九九 | 国内精品一区二区 | 一级毛片直接看 | 一级一片免费看 | 91精东果冻蜜桃星空麻豆 | 国产一区二区精品久久91 | 久久免费毛片 | 5566中文字幕亚洲精品 | 波多野结衣日韩 | 日本不卡在线一区二区三区视频 | 日本成人一区二区 | a级做人爱免费播放 | 亚洲欧美卡通成人制服动漫 | 亚洲国产欧美日韩一区二区 | 三级黄毛片 | 亚洲伊人精品综合在合线 | 色丁香综合 | 日本不卡视频网站 | 一级爱爱片 | 国产中文欧美 | fxxxx性欧美高清 | 夜色福利一区二区三区 | 狠狠操天天爱 | 离线枕边人在线观看 | 日本一级一片免费 | 激情综合网五月激情 | 日本国产精品 | 99免费 | 元龙第三季动漫在线观看免费版 | 欧美综合中文字幕久久 | 99久久免费国产精品热 | 美女被爆羞羞视频网站视频 | 天天成人综合网 | 最新国产一区二区精品久久 | www.午夜色 | 欧美视频一区二区专区 | 好爽毛片一区二区三区四区 | 亚洲视频一区在线观看 |