spring gateway 和 nacos 之间的关系?
项目中我部署了10个gateway的实例,和一个单机的nacos,所有服务都注册到nacos中,gateway中配置了其它服务的路由。
我通过域名映射到一个gateway实例的的访问地址,那我在通过域名访问服务的时候其它的9个gateway实例有没有起到负载均衡的作用呢?
gateway和nacos的服务流向是怎么样的呢?
Gateway和Nacos之间的关系是,Gateway将从Nacos中获取服务的路由信息,然后将请求转发到相应的服务上。
九个Gateway实例是不会起到负载均衡的作用的,因为它们只负责将请求转发到相应的服务上,而不负责处理负载均衡的问题。
服务流向是:客户端发起请求 --> Gateway根据Nacos中的路由信息将请求转发到相应的服务 --> 服务处理客户端请求 --> Gateway将服务处理的结果返回给客户端。
Spring Gateway和Nacos之间的关系是一个前端负载均衡器与服务注册与发现的组合。Nacos维护了一个注册中心,所有的微服务都在Nacos中注册,从而提供服务发现功能。而Spring Gateway作为前端负载均衡器,通过Nacos发现其它微服务,根据配置的路由规则对外提供服务。
项目中有10个Gateway实例,如果你通过域名映射到了一个Gateway实例的访问地址,其他9个Gateway实例可能会被访问到,也可能不会,这取决于域名的解析器对于这10个Gateway实例的负载均衡策略。
从服务流向上看,客户端通过域名请求访问服务,请求首先经过域名解析器,到达一个Gateway实例,该Gateway实例通过Nacos查询微服务的地址,根据配置的路由规则对请求进行转发,最后到达真正的微服务。
server:
port: 7000
spring:
application:
name: gateway-server # 应用名称
cloud:
gateway:
discovery:
locator:
# 是否与服务发现组件进行结合,通过 serviceId 转发到具体的微服务
enabled: true #是否开启基于服务发现得路由规则
lower-case-service-id: true # 是否将服务名称转小写
nacos:
# 注册中心配置
discovery:
server-addr: localhost:8848 # nacos 注册中心地址
namespace: 0e883794-4414-4d41-a177-6d335d304e42 # 开发环境 指定 具体的命名空间id
#group: DEFAULT_GROUP # 分组 默认分组可以省略
# 配置中心配置
config:
#enabled: false #关闭配置
server-addr: localhost:8848 # Nacos 配置中心地址
namespace: 0e883794-4414-4d41-a177-6d335d304e42 # 开发环境 指定 具体的命名空间id
group: TEST_GROUP # 分组
name: test-config-dev #dataid 内容
人性化理解:
spring gateway :前端门面。
nacos :后端门面。