| GateWay的作用:反向代理、熔断、限流、日志监控 |
- 网关位置:

| Route(路由):由ID、目标url、断言、过滤器组成 |
| Predicate(断言):相当于匹配规则,当请求与断言匹配则进行路由 |
| 新建cloud-gateway-gateway9527模块作为网关,pom中拉取gateway依赖,配置启动类 |
| 我们将9527作为8001的网关,当我们访问8001服务时,9527可起到过滤器和隐藏8001端口、ip的作用 |
| 配置yml:端口、服务名称、开启网关、路由的id、url、断言(接口方法) |
| 将9527、8001注册进入7001(网关、支付模块注册进eureka) |
| 启动三个模块测试,未配置网关时访问8001的方法会暴露ip端口,配置网关后,暴露的是9527的ip端口 |
| 要做的是隐藏真实地址,暴露网关;这里使用http://localhost:9527/guonei可访问到https://news.baidu.com/guonei |
| 在9527模块中编写配置类 |

| 之前80轮询负载访问8001、8002,使用了eureka+RestTemplate |
| 现在例如访问8001服务需通过网关进行转发,转发到真实的服务地址,当有多个服务提供者时,同样是访问网关,网关转发到服务,这里如何使用网关实现负载均衡? |

| 将8001、8002注册到7001服务注册中心 |
| 9527的pom中拉取eureka-client依赖 |
| 配置yml:8001和8002注册到eureka,因为都是提供者所以有一个共同的服务名称,指定了服务名称就能对名称下的服务进行负载;id是唯一的,对应一个接口方法,url对应服务的ip+端口,这里替换成服务名称,断言对应具体的方法名;同时需开启从注册中心创建路由的功能 |
| uri的协议lb,表示启用Gateway的负载均衡功能 |

| 测试:浏览器输入:http://localhost:9527/payment/lb (前面部分表示暴露的网关,后面表是断言)访问服务提供者集群,实现负载 |
- Route Predicate Factories是一组断言匹配规则:
| 使用:在9527网关模块的yml中配置,如下就表示请求地址要是/payment/get开头,且在指定时间后才能访问 |
| spring: |
| application: |
| name: cloud-gateway-service |
| cloud: |
| gateway: |
| routes: |
| - id: payment_routh |
| |
| uri: lb://cloud-payment-service |
| predicates: |
| - Path=/payment/get/** |
| - After=2021-01-01T15:12:12.789-07:00[America/Denver] |
| 在9527模块中新建一个过滤器类实现GlobalFilter,OrderId |
| 在过滤器类中自定义放行规则即可 |
| 启动测试,发送请求,不符合要求的将被拦截 |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术