Spring Cloud入門教程之路由閘道器 Zuul(五)(Finchley版本+Boot2.0)
路由閘道器什麼是Zuul?
Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/api/payment轉發到到payment服務,/api/login轉發到到login服務。zuul預設和Ribbon結合實現了負載均衡的功能。
zuul有以下功能:
- Authentication
- Insights
- Stress Testing
- Canary Testing
- Dynamic Routing
- Service Migration
- Load Shedding
- Security
- Static Response handling
- Active/Active traffic management
一、使用Zuul
1、修改pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
完整pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cloud</groupId> <artifactId>serverzuul</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>serverzuul</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.RC2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
2、編寫Controller類
在其入口applicaton類加上註解@EnableZuulProxy,開啟zuul的功能
package com.cloud.serverzuul; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableEurekaClient @EnableZuulProxy public class ServerzuulApplication { public static void main(String[] args) { SpringApplication.run(ServerzuulApplication.class, args); } }
首先指定服務註冊中心的地址為http://localhost:8761/eureka/,服務的埠為8767,服務名為service-zuul;以/api-a/ 開頭的請求都轉發給service-ribbon服務;以/api-b/開頭的請求都轉發給service-feign服務
3、配置檔案
server.port=8767
spring.application.name=service-zuul
#指定服務中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
feign.hystrix.enabled=true
zuul.routes.api-a.path=/api-a/**
zuul.routes.api-a.serviceId=service-ribbon
zuul.routes.api-b.path=/api-b/**
zuul.routes.api-b.serviceId=service-feign
4、通過zuul指定的ribbon去消費
5、通過zuul指定的通過feign去消費
Spring Boot與Spring Cloud學習使用可參看筆者部落格
相關推薦
Spring Cloud入門教程之路由閘道器 Zuul(五)(Finchley版本+Boot2.0)
路由閘道器什麼是Zuul? Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/api/payment轉發到到payment服務,/api/login轉發到到login服務。zuul預設和Ribbon結合實現了負載均衡的功能。 zuul有以下功能
超簡單的SpringClound入門教程(四.路由閘道器zuul)
一個微服務的專案架構是要有要的基礎構件的,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等;這樣便能構件出一個簡單的微服務專案; 整理出一個簡單的微服務架構圖; 大家可以看在圖中Zuul就充當著路由轉發的角色 不止如此,Zuul還具備很多功能: Authenticat
Spring Cloud 之 路由閘道器 Zuul元件
Netflix又一開源Spring Cloud元件,路由閘道器Zuul。 微服務架構下服務眾多,Zuul能將所有服務的API介面統一聚合,向外暴露,使用者看起來就像在訪問一個服務一樣。隱藏了內部服務跳轉的過程。還可以和Ribbon組合實現智慧路由轉發和負載均衡
springcloud入門之路由閘道器zuul
在前幾篇springcloud的學習中,我們分別嘗試搭建了一個分散式專案架構的基礎模組,使用eureka實現服務的註冊與發現的服務註冊中心eureka-sercer和服務提供者eureka-client,使用ribbon或feign支援服務的呼叫和負載均衡的se
Spring Cloud入門教程之斷路器 Hystrix(四)(Finchley版本+Boot2.0)
什麼是Hystrix? Hystrix是Netflix開源的一款容錯框架,包含常用的容錯方法:執行緒隔離、訊號量隔離、降級策略、熔斷技術。在高併發訪問下,系統所依賴的服務的穩定性對系統的影響非常大,依賴有很多不可控的因素,比如網路連線變慢,資源突然繁忙,暫時不可用,服務離線
Spring Cloud入門教程之服務消費者 Feign(三)(Finchley版本+Boot2.0)
什麼是Feign? Feign是受到Retrofit,JAXRS-2.0和WebSocket的影響,它是一個java的到http客戶端繫結的開源專案。 Feign的主要目標是將Java Http 客戶端變得簡單。 推薦部落格: 常見錯誤:
Spring Cloud:服務閘道器zuul(10)
前面的文章我們介紹了,Eureka用於服務的註冊於發現,Feign支援服務的呼叫以及均衡負載,Hystrix處理服務的熔斷防止故障擴散,Spring Cloud Config服務叢集配置中心,似乎一個微服務框架已經完成了。 我們還是少考慮了一個問題,外部的應用如何來訪問內部各種各樣的微服務呢?在
Spring Cloud 入門教程1、服務註冊與發現(Eureka)
一、前言 1、什麼是Eureka? Eureka是Netflix開源的服務註冊與發現框架,Eureka由兩個元件組成:Eureka伺服器和Eureka客戶端。 Eureka Server提供服務註冊服務,各個節點啟動後,會在Eureka Server中進行註冊,這樣EurekaServer中的服務登
spring cloud快速入門教程(四)路由閘道器Zuul
現在服務也統一註冊管理了,配置也統一管理了,我們就可以瘋狂的開發各項微服務了,是不是還覺得少了點什麼?前端怎麼訪問到相應服務?這就用到路由網關了。 路由閘道器就是整個微服務的統一入口,看看第一張的架構圖,專案的前端做成了動靜分離,靜態檔案、html頁面、css檔案和js檔案
Spring Cloud 入門教程(五): 路由閘道器(zuul) (Greenwich.RELEASE)
一、準備工作 啟動前面的專案:erurekaserver,eurekaclient1,service-feign,service
Spring Cloud基礎教程(七):路由閘道器使用(Zuul)
一、概述Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/client-a/轉發到到a服務,/client-b/轉發到到b服務。zuul預設和Ribbon結合實現了負載均衡的功能。二、準備將服務註冊與發現這篇部落格中的Eureka-Client-A工程,複
spring-cloud(五)路由閘道器(zuul)(Finchley版本)
在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統 在Spring Cloud微服務系統中,一種常見的負載均衡方式是,客戶端的請求首先經過負載均衡(zuul、
spring cloud進階五 [路由閘道器 (zuul)]
在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統。一個簡答的微服務系統如下圖: 在Spring Cloud微服務系統中,一種常見的負載均衡方式是,客戶端的請求首先經過負載均
spring cloud 教學五(路由閘道器(zuul))
Zuul簡介 Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/api/user轉發到到user服務,/api/shop轉發到到shop服務。zuul預設和Ribbon結合實現了負載均衡的功能。 準備工作 繼續使用上一節的工程。在原有的工程上,建立一
Spring Cloud與微服務之服務閘道器Zuul
文章目錄 springcloud-api-gateway springcloud-api-gateway專案結構 springcloud-api-gateway原始碼 springcloud-api-gateway的使用
Spring Cloud(四):路由閘道器Zuul
Zuul作為路由閘道器元件,在微服務架構當中有著非常重要的作用,主要體現在6個方面: Zuul,Ribbon以及Eureka相結合,可以實現智慧路由和負載均衡的功能,Zuul能夠將請求流量按某種策略分發到叢集狀態的多個伺服器例項。 閘道器將所有服務的API介面統一聚
Spring Cloud之API 閘道器Zuul
一、為什麼需要閘道器? 安全性: 1.最主要的一點是閘道器可以將所有服務的API介面統一聚合,並統一對外暴露。外界系統呼叫API介
史上最簡單的SpringCloud教程 | 第五篇: 路由閘道器(zuul)
在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統。一個簡答的微服務系統如下圖: 注意:A服務和B服務是可以相互呼叫的,作圖的時候忘記了。並且配置服務也是註冊到服務註冊中
史上最簡單的SpringCloud教程 | 第五篇: 路由閘道器(zuul)(Finchley版本)
在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統。一個簡答的微服務系統如下圖: 注意:A服務和B服務是可以相互呼叫的,作圖的時候忘記了。並且配置服務也是註冊到服務註冊中
Spring Cloud學習筆記18——API 閘道器
API 閘道器是一套主要用於統一API入口的應用元件,可以管理所有的API,形成一個API的入口 API閘道器的意義 集合多個API 統一API入口 API閘道器所帶來的好處 避免將內部資訊洩露給外部 為微服務新增額外的安全層 支