【Java】动态Zuul网关路由转发

动态Zuul网关路由转发

isWulongbo发布于 今天 09:56

springcloud-zuul-gateway

pom文件新增依赖:

<!--SpringCloud 整合 config-client--><dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-client</artifactId>

</dependency>

<!--actuator监控中心-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

【Java】动态Zuul网关路由转发

修改application.yml配置文件:

## api网关端口号

server:

port: 80

## 服务注册名称

spring:

application:

name: server-zuul

cloud:

config:

#### 读取版本环境

profile: dev

discovery:

#### config server 服务注册别名

service-id: config-server

#### 开启读取权限

enabled: true

eureka:

client:

service-url:

##当前服务注册到Eureka服务地址

defaultZone: http://localhost:8100/eureka,http://localhost:9100/eureka

register-with-eureka: true

## 需要检索服务信息

fetch-registry: true

#### 配置动态

#zuul:

# routes:

# ## 表示定义转发服务规则

# api-a:

# ### 当客户端发送请求http://127.0.0.1:80/api-member开头的,都会转发到会员服务

# path: /api-member/**

# ### 会员服务别名 zuul默认整合ribbon,自动实现轮询效果

# serviceId: app-member

# api-b:

# ### 当客户端发送请求http://127.0.0.1:80/api-order开头的,都会转发到订单服务

# path: /api-order/**

# ### 订单服务别名 zuul默认整合ribbon,自动实现轮询效果

# serviceId: app-order

####开启所有端点

management:

endpoints:

web:

exposure:

include: "*"

注释掉的部分,新增yml文件到Getee上
【Java】动态Zuul网关路由转发
【Java】动态Zuul网关路由转发

AppGateway启动类新增zuul配置

package com.baba.wlb;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.cloud.context.config.annotation.RefreshScope;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;

/**

* @Author wulongbo

* @Date 2021/1/28 11:52

* @Version 1.0

*/@SpringBootApplication

@EnableEurekaClient

@EnableZuulProxy

public class AppGateway {

//@EnableZuulProxy 开启网关代理

public static void main(String[] args) {

SpringApplication.run(AppGateway.class, args);

}

// zuul配置能够使用config实现实施更新

@RefreshScope

@ConfigurationProperties("zuul")

public ZuulProperties zuulProperties(){

return new ZuulProperties();

}

}

【Java】动态Zuul网关路由转发

启动项目

依次启动Eureka Server、Config Server、Zuul网关gateway,以及Member 或者 Order服务
【Java】动态Zuul网关路由转发

Config Server服务

分布式配置中心 config server验证gitee上的配置文件能够正确读取,访问:http://localhost:8888/server-zuul-dev.yml
【Java】动态Zuul网关路由转发

网关访问

zuul网关访问:http://localhost/api-member/getMember?name=iswulongbo&userToken=cloud
【Java】动态Zuul网关路由转发
验证动态读取到了gitee上的配置文件,要动态修改或者动态新增服务到zuul网关,只需在gitee的配置文件中添加完后手动调用接口刷新或者通过集成bus消息总线就OK!这里不再说明。

javaspringboot

阅读 36发布于 今天 09:56

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议


wulongbo

我的专栏

avatar

isWulongbo

在人生的头三十年,你培养习惯,后三十年,习惯铸就你

178 声望

8 粉丝

0 条评论

得票时间

avatar

isWulongbo

在人生的头三十年,你培养习惯,后三十年,习惯铸就你

178 声望

8 粉丝

宣传栏

springcloud-zuul-gateway

pom文件新增依赖:

<!--SpringCloud 整合 config-client--><dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-client</artifactId>

</dependency>

<!--actuator监控中心-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

【Java】动态Zuul网关路由转发

修改application.yml配置文件:

## api网关端口号

server:

port: 80

## 服务注册名称

spring:

application:

name: server-zuul

cloud:

config:

#### 读取版本环境

profile: dev

discovery:

#### config server 服务注册别名

service-id: config-server

#### 开启读取权限

enabled: true

eureka:

client:

service-url:

##当前服务注册到Eureka服务地址

defaultZone: http://localhost:8100/eureka,http://localhost:9100/eureka

register-with-eureka: true

## 需要检索服务信息

fetch-registry: true

#### 配置动态

#zuul:

# routes:

# ## 表示定义转发服务规则

# api-a:

# ### 当客户端发送请求http://127.0.0.1:80/api-member开头的,都会转发到会员服务

# path: /api-member/**

# ### 会员服务别名 zuul默认整合ribbon,自动实现轮询效果

# serviceId: app-member

# api-b:

# ### 当客户端发送请求http://127.0.0.1:80/api-order开头的,都会转发到订单服务

# path: /api-order/**

# ### 订单服务别名 zuul默认整合ribbon,自动实现轮询效果

# serviceId: app-order

####开启所有端点

management:

endpoints:

web:

exposure:

include: "*"

注释掉的部分,新增yml文件到Getee上
【Java】动态Zuul网关路由转发
【Java】动态Zuul网关路由转发

AppGateway启动类新增zuul配置

package com.baba.wlb;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.cloud.context.config.annotation.RefreshScope;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;

/**

* @Author wulongbo

* @Date 2021/1/28 11:52

* @Version 1.0

*/@SpringBootApplication

@EnableEurekaClient

@EnableZuulProxy

public class AppGateway {

//@EnableZuulProxy 开启网关代理

public static void main(String[] args) {

SpringApplication.run(AppGateway.class, args);

}

// zuul配置能够使用config实现实施更新

@RefreshScope

@ConfigurationProperties("zuul")

public ZuulProperties zuulProperties(){

return new ZuulProperties();

}

}

【Java】动态Zuul网关路由转发

启动项目

依次启动Eureka Server、Config Server、Zuul网关gateway,以及Member 或者 Order服务
【Java】动态Zuul网关路由转发

Config Server服务

分布式配置中心 config server验证gitee上的配置文件能够正确读取,访问:http://localhost:8888/server-zuul-dev.yml
【Java】动态Zuul网关路由转发

网关访问

zuul网关访问:http://localhost/api-member/getMember?name=iswulongbo&userToken=cloud
【Java】动态Zuul网关路由转发
验证动态读取到了gitee上的配置文件,要动态修改或者动态新增服务到zuul网关,只需在gitee的配置文件中添加完后手动调用接口刷新或者通过集成bus消息总线就OK!这里不再说明。

以上是 【Java】动态Zuul网关路由转发 的全部内容, 来源链接: utcz.com/a/109852.html

回到顶部