POM文件依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--gateway fhadmin.org-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>3.0.2</version>
</dependency>
<!--spring-boot fhadmin.org-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
我在父组件中加入的nacos的相关依赖如下:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${nacos.version}</version>
</dependency>
<!--alibaba fhadmin.org-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
nacos的版本如下:
<properties>
<nacos.version>2021.1</nacos.version>
</properties>
gateway的application.yml文件配置如下:
#fhadmin.org
server:
port: 9040
spring:
application:
name: gateway
cloud:
gateway:
routes:
- id: consumer
uri: lb://consumer
# uri: http://localhost:9010
predicates:
- Path=/**
nacos:
discovery:
server-addr: localhost:8848
metadata:
preserved.heart.beat.interval: 3 #心跳间隔。时间单位:秒。心跳间隔
preserved.heart.beat.timeout: 6 #心跳暂停。时间单位:秒。 即服务端6秒收不到客户端心跳,会将该客户端注册的实例设为不健康:
preserved.ip.delete.timeout: 9 #Ip删除超时。时间单位:秒。即服务端9秒收不到客户端心跳,会将该客户端注册的实例删除:
当我通过uri: http://localhost:9010去调用服务时,是可以调用的,但是当我用uri lb://consumer时就无法调用服务,报错503.
解决办法是:
加入feign依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>3.0.2</version>
</dependency>
<!--fegin组件 fhadmin.org-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.2</version>
</dependency>
<!-- Feign Client for loadBalancing -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
猜测原因:nacos兼容feign,feign集成ribbon,默认实现负载均衡;或许是nacos不兼容springcloud gateway自带的ribbon。
相关推荐
Spring Cloud Gateway默认使用`DefaultErrorWebExceptionHandler`类来处理异常,该类继承自`AbstractErrorWebExceptionHandler`,并在内部使用了`ErrorAttributes`和`ResourceProperties`等组件来收集错误信息。...
SpringCloud Gateway是一款基于Spring Framework 5、Spring Boot 2以及Project Reactor开发的API网关,它是Spring Cloud生态体系中的重要组件,旨在为微服务架构提供一种简单有效的统一的API路由管理方式。...
Spring Cloud Gateway全局异常处理的方法详解 Spring Cloud Gateway作为Spring Cloud生态系中的网关,旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。然而,在实际应用中,Spring Cloud Gateway中的...
在构建现代微服务架构时,Spring Cloud Gateway 和 Spring Security 是两个关键组件,它们与 Vue.js 结合使用可以创建一个安全的、高效的API网关。让我们深入探讨这些技术及其相互作用。 **Spring Cloud Gateway** ...
Spring Cloud Gateway 是一款由 Pivotal 开发的用于构建 API 路由和服务网关的框架,它基于 Spring Framework 5、Spring Boot 2 和 Project Reactor 进行设计。这款网关旨在提供一种简单而有效的方式来对 API 进行...
在"springcloud+consul+gateway+openfein实践"项目中,以下是一些关键知识点: 1. **服务注册与发现**:服务启动后,使用Spring Cloud Consul的客户端将其注册到Consul服务器。每个服务实例都会定期发送心跳,以...
总之,Spring Cloud Feign为微服务架构中的服务消费者提供了优雅的调用方式,降低了开发复杂性,提高了代码的可读性和可维护性。通过合理的配置和使用,我们可以构建出高可用、高并发的分布式系统。
这个"springcloud例子"是一个典型的SpringCloud教程的源代码实践,我们可以从其中学习到如何搭建和使用SpringCloud的核心组件。 首先,`springcloud-eureka-server`和`springcloud-eureka-server2`是Eureka服务注册...
这些内容将帮助你理解并运行一个基本的SpringCloud微服务架构,包括如何设置各个组件、如何编写服务间调用的代码,以及如何启动和监控服务。 通过这个入门demo,你将能够: 1. 理解SpringCloud的核心组件及其作用...
在描述中多次提到了 "spring cloudspring cloud",这可能是由于输入错误,但我们可以从中理解到这是对 Spring Cloud 的强调。Spring Cloud 的核心组件包括: 1. **Spring Cloud Config**:这是一个分布式配置中心,...
Spring Cloud Gateway 是一款由 Pivotal 公司开发并维护的现代化微服务网关,它设计用于简化构建可扩展和高度可配置的 API 网关。基于 Spring Framework 和 Spring Boot 2.x,Spring Cloud Gateway 提供了统一的路由...
在本课程中,我们将深入探讨如何使用Sentinel在Spring Cloud环境中实现微服务的容错机制。Sentinel是一款由阿里巴巴开源的流量控制、熔断降级的Java库,它旨在为分布式系统提供强大的服务保护能力。在微服务架构中,...
这个"SpringCloud整合"的资源包很可能包含了上述组件的示例代码、配置文件以及整合教程,帮助开发者理解和实践SpringCloud的微服务架构。通过学习和实践,你可以提升自己的微服务开发技能,更好地应对复杂分布式系统...
- **区别**:两者都是 API 网关,但 Spring Cloud Gateway 是基于 Spring Framework 5 和 Project Reactor 的非阻塞 API 框架构建的,提供了比 Zuul 更强大的路由功能。Spring Cloud Gateway 支持动态路由、过滤器...
Spring Gateway 是一个基于 Spring Framework 5、Project Reactor 和 Spring Cloud 的强大网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。在本项目中,我们将探讨如何在 Spring Gateway 中...
### SpringCloud配置、教程、源代码项目详解 #### Spring Cloud简介 Spring Cloud 是一套基于 Spring Boot 实现的微服务解决方案,旨在为开发者提供快速构建分布式系统和服务间通信所需的工具和服务。通过集成各种...
SpringCloud是中国开发者广泛使用的微服务框架,它基于Spring Boot实现,提供了一整套微服务解决方案。这份"SpringCloud笔记.rar"文件显然包含了作者在学习狂神(一位知名的IT教育从业者)关于SpringCloud课程时整理...
4. **Spring Cloud OpenFeign**:增强了服务调用的灵活性和错误处理能力。 **Spring Cloud OAuth2** OAuth2是一个开放标准,用于授权第三方应用访问用户资源。在Spring Cloud OAuth2中,主要涉及以下几个核心组件...
在本项目中,可能使用了Eureka来实现服务注册与发现,Zuul或Gateway作为API网关进行路由转发,Hystrix作为断路器以防止服务雪崩,还有Spring Cloud Config作为集中式的配置管理。 Mysql作为关系型数据库,存储了...
6. **Spring Cloud Gateway**:作为 Spring Cloud 新一代的 API 网关,它比 Zuul 更加灵活和强大,支持动态路由、熔断、限流、黑白名单等功能,基于 Spring Framework 5、Project Reactor 和 Spring Cloud Common 的...