当前位置: 首页 > news >正文

微服务中网关的配置

一、添加 Spring Cloud Gateway 依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

二、配置网关路由

在application.yaml中配置如下内容:

spring:cloud:gateway:routes:- id: service1_routeuri: http://localhost:8081predicates:- Path=/service1/**- id: service2_routeuri: http://localhost:8082predicates:- Path=/service2/**

在上面的示例中,配置了两个网关路由,分别将请求路由到 http://localhost:8081 和 http://localhost:8082。其中,id 属性表示路由的唯一标识符,uri 属性表示路由的目标地址,predicates 属性表示路由的匹配规则。

使用了 Path=/service1/** 和 Path=/service2/** 作为路由的匹配规则,表示当客户端发送的请求路径以 /service1 或 /service2 开头时,网关会将请求路由到对应的服务地址。

三、配置网关端口和其他属性

server:port: 8888spring:cloud:gateway:discovery:locator:enabled: trueroutes:- id: service1_routeuri: lb://service1predicates:- Path=/service1/**- id: service2_routeuri: lb://service2predicates:- Path=/service2/**

在上面的示例中,配置了网关的端口为 8888,并启用了服务发现功能,这样网关就可以自动发现并路由到注册在服务注册中心中的微服务。将 uri 属性的值设置为 lb://service1 和 lb://service2,表示使用负载均衡的方式将请求路由到多个服务实例中。

四、uri: http://localhost:8081和uri: lb://service1的区别

  • 使用uri: http://localhost:8081
    在网关配置中,可以使用目标服务的 URL 地址作为路由的目标地址,例如 http://localhost:8081。但是,这种方式有一个缺点:如果服务有多个实例,需要手动指定其中一个实例的地址,这样就无法实现负载均衡的功能

  • 使用uri: lb://service1
    为了解决这个问题,可以使用服务发现功能来自动获取服务的实例地址,并实现负载均衡的功能。在 Spring Cloud 中,使用 Ribbon 或 Spring Cloud LoadBalancer 来实现这个功能。在配置网关路由时,使用 lb:// 前缀来代替具体的服务实例地址,例如 lb://service1。这样,网关就会自动从服务注册中心中获取服务的实例地址,并实现负载均衡的功能

    使用 lb:// 前缀的方式还可以支持服务的动态添加和删除。当新的服务实例注册到服务注册中心中时,网关会自动更新路由配置,从而将请求路由到新的服务实例中。同样地,当服务实例下线时,网关也会自动将其从路由配置中删除,以保证请求不会再被路由到已下线的服务实例中。

http://www.lryc.cn/news/69388.html

相关文章:

  • Linux基本指令实现4及热键指令详解
  • 系统调用与API
  • OpenPCDet系列 | 5.4.1 DenseHead中的AnchorGenerator锚框生成模块
  • 【开发者指南】如何在MyEclipse中使用HTML或JSP设计器?(上)
  • Node开发Web后台服务
  • Linux下对mmap封装使用
  • 深入了解云计算:发展历程、服务与部署模型、未来趋势与挑战
  • 使用乐鑫 Web IDE 助力物联网开发
  • Maven(5)---Maven的部署和发布
  • 内网渗透之权限维持-黄金白银票据隐藏账户远控-RustDeskGotoHTTP
  • 动态规划——带权活动选择
  • 软考A计划-真题-分类精讲汇总-第十八章(面向对象程序设计)
  • 【C++ 入坑指南】(09)数组
  • Vue.js
  • 博士毕业答辩流程 注意事项
  • 拼多多开放平台订单详情接口解析
  • 如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
  • 由浅入深了解 深度神经网络优化算法
  • LIN-报文结构
  • 南京邮电大学通达学院2023c++实验报告(三)
  • ISO9000和ISO9001有哪些区别?
  • 第7章异常、断言和曰志
  • springboot读取和写入csv文件数据
  • 【产品经理】工作交接
  • Springer期刊 latex投稿经验分享
  • Python 文件读取的练习
  • Redis:主从复制_通过此功能实现对内存上的数据更好的保护
  • LoRA:大模型的低秩自适应微调模型
  • 拼多多买家如何导出“个人中心”订单信息
  • 11.计算机基础-计算机网络面试题—基础知识