- 新建一个moudle 名为gateway
pom依赖如下,注意不要添加 spring-boot-starter-web
否则会启动失败
<dependencies> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- 启动类添加注解
@EnableEurekaClient
- 配置文件,具体各个配置是什么意思,我在配置文件已经写的很清楚了,就不再赘述了,如下:
-
server: port: 8888 spring: profiles: active: path-route #使用哪个配置文件 application: name: HELLO-GATEWAY #服务名 --- #三个横线表示再创建一个配置文件 spring: profiles: path-route #配置文件名 和 spring.profiles.active 相对应 cloud: #设置路由规则 gateway: routes: - id: gateway uri: lb://MICROSERVICE01 #代表从注册中心获取服务,且以lb(load-balance)负载均衡方式转发 predicates: #断言 - Path=/service01/** #表示将以/service01/**开头的请求转发到uri为lb://MICROSERVICE01的地址上 - After=2019-06-20T00:00:00.789-07:00[America/Denver] #表示在该时间点之后的时间,发出的请求会被路由到uri # filters: # - StripPrefix=1 #表示将Path的路径/service01在转发前去掉,如果设置StripPrefix=2,表示将/service01/*去掉 以此类推... 同时将spring.cloud.gateway.discovery.locator.enabled改为false,如果不改的话,之前的localhost:8799/client01/test01这样的请求地址也能正常访问,因为这时为每个服务创建了2个router discovery: locator: #表示gateway开启服务注册和发现功能, #并且spring cloud gateway自动根据服务发现为每一个服务创建了一个router,这个router将以服务名开头的请求路径转发到对应的服务 enabled: true #表示将请求路径的服务名配置改成小写 因为服务注册的时候,向注册中心注册时将服务名转成大写的了 lower-case-service-id: true --- spring: profiles: after-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示在该时间点之后的时间,发出的请求会被路由到uri - After=2019-06-20T00:00:00.789-07:00[America/Denver] # - After=1561098916602 也可以用long类型的时间戳格式 --- spring: profiles: before-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示在该时间点之前的时间,发出的请求会被路由到uri - Before=2019-12-20T00:00:00.789-07:00[America/Denver] --- spring: profiles: between-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示在该时间点之间的时间,发出的请求会被路由到uri - Between=2019-02-20T00:00:00.789-07:00[America/Denver],2019-12-20T00:00:00.789-07:00[America/Denver] --- spring: profiles: header-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示当请求的请求头中有 key=Hello,value=World,发出的请求会被路由到uri - Header=Hello, World #可以是正则表达式 例如 - Header=Hello, \d+ --- spring: profiles: cookie-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示当请求带有名为Hello,值为World的Cookie时,发出的请求会被路由到uri - Cookie=Hello, World --- spring: profiles: host-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示当请求带有host为**.host.test时,发出的请求会被路由到uri - Host=**.host.test --- spring: profiles: method-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示GET请求,都会被路由到uri - Method=GET --- spring: profiles: query-route cloud: gateway: routes: - id: gateway uri: lb://MICROSERVICE01 predicates: #表示请求带有参数key=a, value=b时,该请求会被路由到uri - Query=a, b
根据配置文件的不同,请求路径也会不一样,由于本文只是涉及gateway的简单使用,我也没有做什么太深入的研究,就到这里啦。
相关推荐
本套笔记全面覆盖了SpringCloud微服务架构的关键知识点,从理论到实践,帮助读者深入了解并掌握微服务设计原则和SpringCloud的实现方式,对于想要在微服务领域深化学习的Java开发者来说是一份宝贵的资料。
总而言之,SpringCloud微服务分布式架构开发实战课程涵盖了微服务架构的关键技术,通过作业和参考答案,你可以加深对SpringCloud组件的理解,提升微服务应用的开发能力。在实践中不断学习,才能更好地应对复杂的...
SpringCloud Gateway作为一款现代化的微服务网关,它在企业级分布式系统中扮演着至关重要的角色。这个名为"springcloud Gateway网关-压测用.zip"的压缩包包含了一个用于性能测试的配置,目的是评估和优化Gateway的...
10. **Spring Cloud Gateway**:新一代API网关 - Spring Cloud Netflix的Zuul在新版本中已被Gateway取代,Gateway具有更强大和灵活的路由规则,以及更好的性能。 了解并熟练掌握这些核心组件的使用,是构建和维护...
<artifactId>spring-cloud-starter-gateway ``` 然后配置路由规则: ```yaml spring: cloud: gateway: routes: - id: service_route uri: lb://service-provider predicates: - Path=/api/service/** ```...
Spring Cloud Gateway 是一款基于 Spring Framework 5 和 Spring Boot 2 设计的现代化微服务路由网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。在本示例 "spring-cloud-gateway-demo.zip" 中...
《SpringCloud Alibaba深度解析与实践指南》 在现代软件开发领域,微服务架构已经成为构建大型分布式系统的主流方式。Spring Cloud Alibaba作为Spring Cloud生态中的重要组件,为企业级开发提供了丰富的微服务解决...
SpringCloud基于SpringBoot,简化了微服务架构的搭建和管理,使得开发者可以快速地在分布式环境中实现服务发现、负载均衡、断路器、配置中心、API网关等功能。 一、SpringCloud的核心组件: 1. Eureka:服务注册与...
SpringCloud微服务架构是当前企业级应用开发中的热门选择,它提供了一整套服务发现、配置管理、服务间通信以及负载均衡等工具,使得开发者能够快速构建复杂的分布式系统。在这个框架下,我们可以利用Eureka作为注册...
5. **分布式网关**:SpringCloud Gateway作为SpringCloud生态中的新一代API网关,它基于Spring Framework和Spring Boot设计,提供了路由转发、过滤器链等功能。开发者可以通过Gateway统一处理所有外部请求,实现认证...
- **Spring Cloud Gateway**:新一代的API网关,替代Zuul,提供了更丰富的路由规则和过滤器支持。 - **Spring Cloud Sleuth**:用于追踪链路,支持Zipkin、Jaeger等多种追踪系统集成。 - **Spring Cloud Stream**:...
这个压缩包“SpringCloud微服务架构.rar”很可能包含了关于如何使用SpringCloud来搭建和管理微服务架构的相关资料。 SpringCloud的核心组件包括以下几点: 1. **Eureka**:服务注册与发现。Eureka是Netflix的一个...
SpringCloud 是一套完整的微服务解决方案,它为开发者提供了构建分布式系统所需的工具,包括服务发现、配置管理、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等。...
接下来是“SpringCloud API网关”,它在微服务架构中扮演着至关重要的角色。API网关作为系统的单一入口点,负责处理所有客户端的请求,然后根据请求的目标路由到相应的微服务。Zuul和Gateway是SpringCloud提供的两种...
文档中可能还会包含SpringCloud Gateway、SpringCloud Stream、SpringCloud Data Flow等相关组件的介绍,这些都是SpringCloud生态中重要的组成部分,分别用于构建API网关、处理消息和数据流的管理。 总的来说,...
4. 路由管理:Vue.js的router模块进行页面路由管理,SpringCloud API Gateway处理不同服务的路由规则。 5. 实时通讯:通过WebSocket实现前后端的实时通信,例如SpringCloud的Sleuth模块可以配合Zipkin实现服务追踪...
通过这个"Springboot+SpringCloud微服务架构demo",学习者可以了解微服务的基本架构和组件,理解如何使用Spring Boot和Spring Cloud来构建分布式系统,同时也能掌握Eureka、Gateway和Config等关键组件的用法。...
引入Spring Cloud Gateway到项目中,首先需要添加Spring Cloud的统一版本依赖管理,这可以通过引入`spring-cloud-dependencies`的BOM(Bill of Materials)来实现,无需显式指定每个Spring Cloud组件的版本。...
- **Spring Cloud Gateway**:新一代的API网关,提供路由、过滤器、限流等功能,比Zuul更强大且性能更好。 4. 微服务选型 - **Netflix组件与Spring Cloud Alibaba对比**:Netflix组件是Spring Cloud初期常用的...
本文将深入探讨如何利用SpringCloud Greenwich构建一个名为“天天吃货”的在线购物平台,帮助读者掌握微服务架构下的系统设计与开发。 1. SpringCloud概述: SpringCloud是基于Spring Boot的微服务框架,提供了一...