微服务网关的实现方法

微服务网关的实现方法

项目中微服务一旦过多几十上百个时,像NGINX的静态配置法,肯定是行不通的,此时会用到注册中心。

服务发现包含服务消费者(Consumer)服务提供者(Provider)

在微服务架构中,服务提供者是指那些微服务们,服务消费者是指网关们。

网关会从注册中心上订阅微服务的实例列表。

心跳续约是注册中心感知微服务实例可用性的基本途径。比如,注册中心的正常机制是,微服务心跳不续约,30 秒后自动下线。

微服务无损下线,又叫优雅下线、或者平滑下线,都是一个意思。首先看什么是有损下线
微服务实例进行升级过程中,下线后心跳在注册中心存约以及变更生效都有一定的时间,在这个期间网关订阅列表仍然没有更新到下线后的版本,如果鲁莽地将微服务停止服务,会造成一部分的流量损失。
无损下线有很多不同的解决方案,但侵入性最低的还是服务治理中心默认提供的能力,无感地整合到发布流程中,完成自动执行。免去繁琐的运维脚本逻辑的维护。
配置管理主要包含配置订阅和配置发布两类操作。

spring cloud动态路由配置方法

动态路由(服务发现的路由规则)
动态路由其实就是面向服务的路由,根据 serviceId 自动从注册中心获取服务地址并转发请求,这样做的好处不仅可以通过单个端点来访问应用的所有服务,而且在添加或移除服务实例时不用修改 Gateway 的路由配置。

server:
port: 9000 # 端口

spring:
application:
name: gateway-server # 应用名称
cloud:
gateway:
# 路由规则
routes:
- id: product-service # 路由 ID,唯一
uri: lb://product-service # lb:// 根据服务名称从注册中心获取服务请求地址
predicates: # 断言(判断条件)
- Path=/product/** # 匹配对应 URL 的请求,将匹配到的请求追加在目标 URI 之后

posted @ 2022-11-10 09:34  delphi中间件  阅读(117)  评论(0编辑  收藏  举报