Spring Cloud之搭建动态Zuul网关路由转发

传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器。这时候我们结合上节课内容整合SpringCloud Config分布式配置中心,实现动态路由规则。

将yml的内容粘贴到码云上:

###注册 中心
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/
server:  ##api网关端口号
  port: 80
###网关名称
spring:   ##网关服务名称
  application:
    name: service-zuul
### 配置网关反向代理
zuul:
  routes:
    api-member:  ##随便写的
     ### 以 /api-member/访问转发到会员服务   通过别名找
      path: /api-member/**
      serviceId: app-toov5-member  ##别名  如果集群的话  默认整合了ribbon 实现轮训 负载均衡
    api-order:   ##随便写的
        ### 以 /api-order/访问转发到订单服务
      path: /api-order/**
      serviceId: app-toov5-order   ##别名

  

添加到依赖:

               <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

 可以实现手动刷新 

yml中添加:

###默认服务读取eureka注册服务列表 默认间隔30秒

###开启所有监控中心接口
management:
  endpoints:
    web:
      exposure:
        include: "*"

  开启所有监控中心接口

启动类里面添加:

 //zuul配置使用config实现实时更新
   @RefreshScope
   @ConfigurationProperties("zuul")
   public ZuulProperties zuulProperties() {
       return new ZuulProperties();
   }

package com.toov5;

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;

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy  //开启网关代理
public class AppGateway {
   public static void main(String[] args) {
   SpringApplication.run(AppGateway.class, args);
}
   //zuul配置使用config实现实时更新
   @RefreshScope
   @ConfigurationProperties("zuul")
   public ZuulProperties zuulProperties() {
       return new ZuulProperties();
   }

}

yml

###注册 中心
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/
server:  ##api网关端口号
  port: 80
###网关名称
spring:   ##网关服务名称
  application:
    name: service-zuul
  ###网关名称
  cloud:
    config:
    ####读取后缀
      profile: dev
      ####读取config-server注册地址
      discovery:
        service-id: confi

### 配置网关反向代理
#zuul:
#  routes:
#    api-member:  ##随便写的
#     ### 以 /api-member/访问转发到会员服务   通过别名找
#      path: /api-member/**
#      serviceId: app-toov5-member  ##别名  如果集群的话  默认整合了ribbon 实现轮训 负载均衡
#    api-order:   ##随便写的
#        ### 以 /api-order/访问转发到订单服务
#      path: /api-order/**
#      serviceId: app-toov5-order   ##别名

  

启动eureka和configserver

访问:

可以读取到

启动 gateway

然后启动 member

访问:

配置文件是从git读取的,成功!

发生变更后同样需要 post刷新下。

原文地址:https://www.cnblogs.com/toov5/p/9972732.html

时间: 2024-08-30 11:44:02

Spring Cloud之搭建动态Zuul网关路由转发的相关文章

Spring Cloud Alibaba | Nacos动态网关路由

Spring Cloud Alibaba | Gateway基于Nacos动态网关路由 本篇实战所使用Spring有关版本: SpringBoot:2.1.7.RELEASE Spring Cloud:Greenwich.SR2 Spring CLoud Alibaba:2.1.0.RELEASE 前面几篇文章我们介绍了<Nacos服务注册与发现>和<Nacos配置管理>,还没看过的小伙伴们快去看一下,本篇文章是建立在这两篇文章基础上的一次实战. 背景介绍 在Spring Clou

Spring Cloud Gateway的动态路由实现

1.前言 网关中有两个重要的概念,那就是路由配置和路由规则,路由配置是指配置某请求路径路由到指定的目的地址.而路由规则是指匹配到路由配置之后,再根据路由规则进行转发处理.Spring Cloud Gateway作为所有请求流量的入口,在实际生产环境中为了保证高可靠和高可用,尽量避免重启,需要实现Spring Cloud Gateway动态路由配置.前面章节介绍了Spring Cloud Gateway提供的两种方法去配置路由规则,但都是在Spring Cloud Gateway启动时候,就将路由

Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置

Spring Cloud 在 Zuul 的 routing 阶段实现了几个过滤器,这些过滤器决定如何进行路由工作. 简单路由(SimpleHostRoutingFilter) 该过滤器运行后,会将 HTTP 请求全部转发到"源服务器",简单路由的配置如下: #zuul路由配置 zuul: routes: #表示http://localhost:9100/person/speaks地址,路由到http://localhost:8080/speaks person: path:/perso

spring cloud深入学习(十一)-----服务网关zuul

前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了. 我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务.当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制

Spring Cloud(七)服务网关 Zuul Filter 使用

上一篇文章中,讲了Zuul 转发,动态路由,负载均衡,等等一些Zuul 的特性,这个一篇文章,讲Zuul Filter 使用,关于网关的作用,这里就不再次赘述了,重点是zuul的Filter ,我们可以实现安全控制,比如,只有请求参数中有token和密码的客户端才能访问服务端的资源.那么如何来实现Filter了? Spring Cloud Zuul zuul 执行流程 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期. PRE:

最全面的改造Zuul网关为Spring Cloud Gateway(包含Zuul核心实现和Spring Cloud Gateway核心实现)

前言: 最近开发了Zuul网关的实现和Spring Cloud Gateway实现,对比Spring Cloud Gateway发现后者性能好支持场景也丰富.在高并发或者复杂的分布式下,后者限流和自定义拦截也很棒. 提示: 本文主要列出本人开发的Zuul网关核心代码以及Spring Cloud Gateway核心代码实现.因为本人技术有限,主要是参照了 Spring Cloud Gateway 如有不足之处还请见谅并留言指出. 1:为什么要做网关 (1)网关层对外部和内部进行了隔离,保障了后台服

SpringCloud2.0 Zuul 网关路由 基础教程(十)

1.启动基础工程 1.1.启动[服务注册中心],工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 1.2.启动[服务提供者],工程名称:springcloud-eureka-client 参考 SpringCloud2.0 Eureka Client 服务注册 基础教程(三) 1.3.启动[服务消费者],工程名称:springcloud-eureka-ribbon 参考 SpringCloud2

java版b2b2c社交电商spring cloud分布式微服务—服务网关过滤器

过滤器作用我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了.但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放.然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果,为了实现对客户端请求的安全校验和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一套用于校验签名和鉴别权限的过滤器或拦截器. 不过,这样的做法并不可取,它会增加日后的系统维护难度,因为

跟我学Spring Cloud(Finchley版)-17-Zuul路由配置详解

上一节( 跟我学Spring Cloud(Finchley版)-16-Zuul )中,已经实现用Zuul转发到Eureka上的微服务.默认的路由规则是:访问$ZUUL_URL/指定为服务/** 会被转发到指定微服务 的/** . 但在实际项目中,往往需要自己定义路由规则,Zuul的路由配置非常灵活.简单,本节详细讲解Zuul的路由配置. 一.自定义指定微服务的访问路径 配置zuul.routes.指定微服务的serviceId = 指定路径 即可.例如: zuul: routes: micros