3.springcloud alibaba整合gateway

本文介绍了Spring Cloud Gateway的基本概念,如何在Spring Boot应用中添加依赖并配置,以及如何通过Nacos进行服务发现和路由设置。重点讲解了添加Feign客户端和实现网关路由的方法。

一.gateway简介

springcloud gateway是springcloud全家桶的一个组件之一,替代了之前zuul。springcloud gateway组件的功能很强大,可以让我们很容易实现路由,白名单,限流,鉴权等功能,对于微服务系统来说,gateway就是系统的门户,是必不可少的一环。
在这里插入图片描述

二.添加依赖

注:这里贴出来的是部分关键依赖,篇幅有限,详情请下载源码:https://gitee.com/superamxing/simple-demo

<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-gateway</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-openfeign-core</artifactId>
</dependency>

添加好依赖,然后再启动类上加上@EnableFeignClients,@EnableDiscoveryClient,@SpringBootApplication三个注解,分别是开启Feign客户端,服务注册和Springboot程序的核心注解:

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class LibraryGatewayApplication {

    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
    public static void main(String[] args) {
        SpringApplication.run(LibraryGatewayApplication.class, args);
    }
}

然后再启动一个项目library-client,以/api/user/login接口为例,在网关项目的yml文件中添加如下配置,具体gateway的路由功能需要大家参考官方文档来钻研学习:

server:
  port: 8888
spring:
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST}:${NACOS_PORT}
      config:
        server-addr: ${NACOS_HOST}:${NACOS_PORT}
        file-extension: yml
      username: nacos
      password: nacos
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: library-client
        uri: lb://library-client
        predicates:
        - Path=/library-client/api/**
        filters:
        - StripPrefix=1
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/db_library?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
    username: root
    password: root
  application:
    name: library-gateway

分别启动好两个项目,网管项目library-gateway和客户端项目library-client
在这里插入图片描述
然后我们直接可以通过调用网关服务(服务端口为8888),然后路由到library-client.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值