springcloud引入nacos踩坑
在配置网关路由时,url 设置为服务名称时无法调用
1、将 url 设置为 ip 时可以正常访问,所以猜测时 nacos 的服务发现问题
1 | private final DiscoveryClient discoveryClient; |
通过代码测试服务能正常被网关发现
2、后续查看开源项目的网关配置,发现当前依赖少了
1 | <dependency> |
添加依赖,服务可以正调用
3、spring-cloud-loadbalancer 是什么
Spring Cloud LoadBalancer
是 Spring Cloud 提供的一个客户端负载均衡器(Client-Side Load Balancer)。它用于在微服务架构中,帮助客户端在多个服务实例之间进行负载均衡,从而提高系统的可用性和性能。
主要功能
- 服务发现与负载均衡:
Spring Cloud LoadBalancer
可以与服务发现组件(如 Eureka、Consul、Nacos 等)集成,自动发现可用的服务实例。- 它可以根据配置的负载均衡策略(如轮询、随机等),在多个服务实例之间分发请求。
- 客户端负载均衡:
- 与传统的服务器端负载均衡(如 Nginx、HAProxy)不同,
Spring Cloud LoadBalancer
是在客户端进行负载均衡。每个客户端服务都会维护一个服务实例列表,并根据负载均衡策略选择一个实例进行请求。
- 与传统的服务器端负载均衡(如 Nginx、HAProxy)不同,
- 集成方便:
Spring Cloud LoadBalancer
可以很容易地集成到 Spring Cloud 应用中,通过简单的配置即可启用。