iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud微服务网关Gateway怎么创建
  • 532
分享到

SpringCloud微服务网关Gateway怎么创建

2023-07-02 19:07:15 532人浏览 独家记忆
摘要

这篇文章主要介绍“SpringCloud微服务网关Gateway怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springCloud微服务网关Gateway怎么创建”文章能帮助大家解决问题。

这篇文章主要介绍“SpringCloud微服务网关Gateway怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springCloud微服务网关Gateway怎么创建”文章能帮助大家解决问题。

    微服务网关GateWay介绍

    SpringCloud微服务网关Gateway怎么创建

    spring cloud Gateway 是 Spring 体系内的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发,它旨在为微服务架构提供一种简单有效的统一的 api 路由管理方式。

    Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全监控/指标和限流。

    GateWay特性介绍

    • 基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0

    • 动态路由

    • Predicates 和 Filters 作用于特定路由

    • 集成 Hystrix 断路器

    • 集成 Spring Cloud DiscoveryClient

    • 易于编写的 Predicates 和 Filters

    • 限流

    • 路径重写

    Gateway 中的相关术语

    • Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。

    • Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个 ServerWEBExchange。我们可以使用它来匹配来自 Http 请求的任何内容,例如 headers 或参数。

    • Filter(过滤器):这是org.springframework.cloud.gateway.filter.GatewayFilter的实例,我们可以使用它修改请求和响应。

    Gateway实战

    1、创建项目gateway

    创建子模块gateway ,pom.xml引入eureka-client 和gateway 的依赖

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

    2、创建启动类

    @EnableEurekaClient@SpringBootApplicationpublic class GateWayApplication {    public static void main(String[] args) {        SpringApplication.run(GateWayApplication.class, args);    }}

    启动类上增加@EnableEurekaClient以及@SpringBootApplication注解。

    3、新增配置文件

    新增配置文件application.yml

    server:
      port: 8004
    spring:
      application:
        name: gateway
      cloud:
        gateway:
          discovery:
            locator:
              enabled: true
              lower-case-service-id: true
          routes:
            - id: eureka-client-app-1
              uri: lb://app
              predicates:
                - Path=/**
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8001/eureka/

    spring.cloud.gateway.routes路由参数配置说明:

    • id:我们自定义的路由 ID。

    • uri:需要转发的目标服务地址。

    • predicates:路由条件。

    • filters:过滤规则,本示例暂时没用。

    4、编程方式实现路由

    上面路由规则我们也可以使用编程方式来实现,在启动类中增加如下代码,是等效的:

    @Configurationpublic class GatewayConfig {    @Bean    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {        RouteLocatorBuilder.Builder routes = builder.routes();        routes.route("eureka-client-app-1",r -> r.path("/**")               .uri("lb://app"))                .build();        return routes.build();    }}

    5、启动验证

    访问Gateway服务的地址:http://localhost:8004/app/index,效果如下:

    SpringCloud微服务网关Gateway怎么创建

    关于“SprinGCloud微服务网关Gateway怎么创建”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: SpringCloud微服务网关Gateway怎么创建

    本文链接: https://www.lsjlt.com/news/343753.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作