springcloud-alibaba (04)Gateway与Nacos结合使用

这篇具有很好参考价值的文章主要介绍了springcloud-alibaba (04)Gateway与Nacos结合使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Gateway与Nacos结合使用

🎉欢迎来到这里,今天我将为大家介绍如何将Spring Cloud Gateway和Nacos结合使用,实现一个高效稳定的服务网关!在微服务架构中,API网关是必不可少的一部分,它提供了路由请求、负载均衡、安全认证和限流等功能。Spring Cloud Gateway是基于Spring Framework、Spring Boot和Project Reactor等技术的API网关,它提供了一种简单而有效的方式来对微服务进行路由、过滤和流量控制。Nacos是一个用于服务注册和发现的组件,它提供了一种稳定、易于使用、无锁的服务发现方案。那么,让我们看看如何将它们结合起来,实现一个强大的服务网关吧!🚀

1. 单独使用Gateway

首先,让我们来看看如何单独使用Spring Cloud Gateway。只需要添加依赖和配置Gateway即可。

  1. 添加依赖💡
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
  1. 配置Gateway🛠️

然后,在配置文件(application.yml或application.properties)中声明要转发的路由即可。

server:
  port: 7003
spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
        - id: user-server               # 当前路由的标识, 要求唯一
          uri: "http://localhost:7001"  # 请求要转发到的地址
          order: 1                      # 路由的优先级,数字越小级别越高
          predicates:                   # 断言(就是路由转发要满足的条件)
            - Path=/user-server/**      # 当请求路径满足Path指定的规则时,才进行路由转发
          filters:                      # 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
            - StripPrefix=1             # 转发之前去掉1层路径

以上配置中声明了一个路由,将路径为/user-server/**的请求转发到相应的服务上。

springcloud-alibaba (04)Gateway与Nacos结合使用,Spring Cloud Alibaba,spring cloud,gateway,微服务

接下来,让我们来看看如何将Spring Cloud Gateway和Nacos结合使用,以实现更强大的功能。

2. Gateway和Nacos结合

我们可以将Spring Cloud Gateway和Nacos结合使用,为微服务架构提供更加稳定和高效的服务网关解决方案。接下来,我将一步一步的教大家如何结合使用它们。

  1. 添加依赖💡

在pom.xml文件中添加以下依赖。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

这是一些Spring Cloud相关的依赖,包括了Spring Cloud Gateway、Spring Cloud Alibaba Nacos Discovery和Spring Cloud LoadBalancer。

当Gateway在使用Nacos作为服务发现和注册中心时,使用loadbalancer依赖可以让Gateway自动从Nacos注册中心获取可用的服务实例列表,并根据路由规则将请求转发到不同的实例上,实现负载均衡和高可用性。

因此,加上loadbalancer依赖可以使得Gateway和Nacos的结合更加完善,为微服务架构提供更加稳定和高效的服务网关解决方案。

  1. 添加@EnableDiscoveryClient注解 (可选)🛠️
@SpringBootApplication
@EnableDiscoveryClient
public class GateWayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GateWayApplication.class, args);
        System.out.println("run");
    }
}
  1. 配置nacos注册中心和gateway🛠️

这是一个基于Spring Cloud Gateway的配置文件,其中配置了网关的路由规则。

server:
  port: 7003
spring:
  application:
    name: gateway-server
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.157.129:8848
    gateway:
      routes:
        - id: user-server               # 当前路由的标识, 要求唯一
          uri: lb://user-server         # lb指的是从nacos中按照名称获取微服务,并遵循负
          order: 1                      # 路由的优先级,数字越小级别越高
          predicates:                   # 断言(就是路由转发要满足的条件)
            - Path=/user-server/**      # 当请求路径满足Path指定的规则时,才进行路由转发
          filters:                      # 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
            - StripPrefix=1             # 转发之前去掉1层路径
  • server.port:指定网关应用程序的端口号,这里设置为7003。
  • spring.application.name:指定网关应用程序的名称,这里设置为gateway-server。
  • spring.cloud.nacos.discovery.server-addr:指定Nacos服务注册中心的地址,这里设置为192.168.157.129:8848。

在gateway.routes下面,配置了一条路由规则:

当请求路径满足Path指定的规则(/user-server/**)时,将会转发到名为user-server的微服务上。
指定了路由的优先级(order),以及使用了StripPrefix过滤器,将请求路径中的一个路径进行了去除,并将剩余的部分转发给下一级微服务。

简洁版:去掉关于路由的配置🛠️

server:
  port: 7003
spring:
  application:
    name: gateway-server
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.157.129:8848
    gateway:
      discovery:
        locator:
          enabled: true # 让gateway可以发现nacos中的微服务

这是一个基于Spring Cloud Gateway的配置文件,其中增加了发现服务的配置。

在gateway.discovery.locator.enabled属性中设置为true,表示开启了基于服务发现的路由功能。这样,在进行路由时,就会根据微服务的名称从Nacos服务注册中心中获取对应的服务实例,从而实现了自动的服务发现负载均衡的功能。

  1. 运行Spring Boot应用程序注册到nacos服务中心

在nacos服务中心中注册一个名为user-server的微服务,并启动至少两个示例即可。

springcloud-alibaba (04)Gateway与Nacos结合使用,Spring Cloud Alibaba,spring cloud,gateway,微服务

这两个示例除了端口号和接口返回的数据以外其他内容都一样

springcloud-alibaba (04)Gateway与Nacos结合使用,Spring Cloud Alibaba,spring cloud,gateway,微服务

  1. 测试应用程序🔍

现在可以向Spring Cloud Gateway发送请求并将其转发到相应的服务。只要按照网关地址/微服务/接口的格式去访问,就可以得到成功响应。

  • http://localhost:7003/user-server/user/get1
  • 网关地址/微服务的名称/接口的格式

springcloud-alibaba (04)Gateway与Nacos结合使用,Spring Cloud Alibaba,spring cloud,gateway,微服务

根据微服务的名称从Nacos服务注册中心中获取对应的服务实例,从而实现了自动的服务发现负载均衡的功能。

3. 总结🎓

以上是使用Spring Cloud Gateway进行网关配置和使用Nacos进行服务发现和负载均衡的示例。Spring Cloud Gateway和Nacos的结合可以为微服务架构提供更加稳定和高效的服务网关解决方案。文章来源地址https://www.toymoban.com/news/detail-607252.html

到了这里,关于springcloud-alibaba (04)Gateway与Nacos结合使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud-Alibaba之Sentinel熔断与限流

    一、下载安装运行 http://localhost:8080进行访问 登录账号和密码均为sentinel 二、创建工程,并注册到nacos服务中心 依赖spring-cloud-starter-alibaba-nacos-discovery,spring-cloud-starter-alibaba-sentinel sentine-datasource-nacos (持久化) 配置文件 启动类 业务类 三、启动sentinel java -jar sentinel-dashboard-1.7.0

    2024年02月16日
    浏览(43)
  • springcloud-alibaba五大核心组件-后端开发工程(脚手架)搭建

    Gitee仓库地址 点我 服务注册与发现: nacos 配置中心: nacos 服务远程调用: openfeign 微服务网关: gateway 服务限流降级熔断等: sentinel 实现的功能demo openfeign服务远程调用 sentinel限流测试 gateway网关调用2个微服务 nacos的服务注册与发现 软件架构(环境) jdk: 1.8 maven: 3.5.2 nacos: 注册中心

    2024年02月05日
    浏览(55)
  • SpringCloud Alibaba【三】Gateway

    在工作中遇到一种情况,一个父项目中有两个子项目。实际使用时,需要外网可以访问,宝信软件只能将一个端口号发布在外网上,所以需要运用网关技术,通过一个端口号访问两个项目。 之前已经试用nacos搭建了注册中心 pom.xml 导入依赖时注意SpringCloudAlibaba与gateway依赖的版

    2024年02月07日
    浏览(38)
  • SpringCloud Alibaba Sentinel整合GateWay

    在微服务系统中,网关提供了微服务系统的统一入口,所以我们在做限流的时候,肯定是要在网关层面做一个流量的控制,Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 网关: Sentinel 1.6.0 引入了 Sentinel API Gateway Adapter Common 模块,此模块中包含网关限流的

    2024年02月16日
    浏览(47)
  • SpringCloud Alibaba Nacos

    1 官网 1.1 https://github.com/alibaba/Nacos 2 Nacos 是什么? 2.1 一句话: Nacos 就是注册中心[替代Eureka]+配置中心[替代Config] 2.2 Nacos:Dynamic Naming and Configuration Service 2.3 Nacos:架构理论基础: CAP 理论(支持AP 和CP, 可以切换) 3 Nacos 下载运行 3.1 下载: https://github.com/alibaba/nacos/releases/tag/1.2.1 3

    2024年02月07日
    浏览(36)
  • 【SpringCloud Alibaba -- Nacos】Linux 搭建 Nacos 集群

    centos安装docker https://docs.docker.com/engine/install/centos/ MySql8 mysql数据库配置 数据库脚本 nacos/conf/nacos-mysql.sql Nacos2 application.properties 修改为mysql cluster.conf 配置你三台nacos的地址 修改startup.sh ( nacos1版本同一台机器修改启动脚本,nacos2应该不用了 ) 复制俩份nacos,修改其对应的port N

    2024年02月05日
    浏览(66)
  • SpringCloud Alibaba入门7之引入服务网关Gateway

    我们需要在客户端和服务端之间加一个统一的入口,来作为请求的统一接入,而在微服务的体系中,承担这个角色的就是网关。我们只需要将网关的机器IP配置到DNS,或者接入负载,那么客户端的服务最终通过我们的网关,再转发到对应的服务端服务。 一、创建网关服务  1.引

    2024年02月11日
    浏览(46)
  • springcloud Alibaba中gateway和sentinel联合使用

    看到这个文章相信你有一定的sentinel和gateway基础了吧。 官网的gateway和sentinel联合使用有些过时了,于是有了这个哈哈,给你看看官网的: 才sentinel1.6,现在都几了啊,所以有些过时。 下面开始讲解: 首先我们总的回顾一下,sentinel就是需要运行一个jar包,开启dashbord页面,来

    2024年01月17日
    浏览(48)
  • 注册中心/配置管理 —— SpringCloud Alibaba Nacos

    Nacos 是一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生的应用程序 Nacos 的关键特性包括以下几项: 服务发现和服务健康监测:服务提供者使用原生 SDK、OpenAPI 等注册服务后,服务消费者可以使用 HTTPAPI 查找和发现服务。Nacos 提供对服务的实时健康检查

    2024年02月14日
    浏览(62)
  • SpringCloud Alibaba--nacos简介和注册中心和登录

    目录 一.理论基础 二.nacos 2.1 简介 2.2 安装 三.父项目 三.生产者 3.1 配置依赖 3.2 配置文件 3.3 启动类 3.4 控制类 四.消费者 4.1 配置依赖 4.2 配置文件 4.3 启动类 4.4 feign的接口 五.效果 六.负载均衡--权重算法 6.1重启nacos 6.2 设置权重 6.3 设置配置 6.4 效果 SpringCloudAlibaba-登录 1.登录

    2024年04月26日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包