从零到壹搭建一个商城架构--API网关

介绍:

  • SpringCloud 是微服务中的翘楚,最佳的落地方案。
  • Spring Cloud Gateway 是 Spring Cloud 新推出的网关框架,之前是 Netflix Zuul。网关通常在项目中为了简化前端的调用逻辑,同时也简化内部服务之间互相调用的复杂度;具体作用就是转发服务,接收并转发所有内外部的客户端调用;其他常见的功能还有权限认证,限流控制等等。

本博客会提到网关的基本转发功能,熔断功能,限流功能以及功能的综合使用。

1、创建网关工程

此处省略…

2、配置网关

1)、由于我们网关也需要在注册中心进行注册,所以我们需要在pom文件中引入common工程

<dependency>
            <groupId>com.hsl.halmallgroupId>
            <artifactId>hslmall-commonartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>

2)、开启注册中心注解

/**
 * 想要使用网关
 * 1、首先启用注册中心的注册功能
 * 2、在配置文件中配置路由相关的功能
 */
@EnableDiscoveryClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class HslmallGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(HslmallGatewayApplication.class, args);
    }

}

说明:由于我们网关不需要和数据库通信,所以我们在启动@SpringBootApplication后面排除数据源自动配置

3、新建bootstrap.properties

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=52a5124d-5f65-4b41-bdca-01caacb3f3c4
spring.application.name=hslmall-gateway

把网关信息注册到配置中心

4、配置路由

server:
  port: 88
spring:
  application:
    name: hslmall-gateway
  cloud:
    nacos:
      # 配置注册中心的地址和命名空间
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: 52a5124d-5f65-4b41-bdca-01caacb3f3c4
        # 配置网关路由信息
    gateway:
      routes:
        - id: test_route_baidu
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu
        - id: test_toute_qq
          uri: https://www.qq.com
          predicates:
            - Query=url,qq

routes:是一个数组,在yml文件中使用 - 来表示一个对象
id:起一个名字,不能和其他的重复
uri:具体路由的地址
predicates:路由规则,也是一个数组,Query=url,baidu:表示参数中有url参数的,并且值是百度的,都会路由到https://www.baidu.com 这个地址

其他更详细的说明请参照官方文档

5、启动nacos,并创建命名空间

其中 namespace 的值就是我们创建命名空间生成的一串数字
从零到壹搭建一个商城架构--API网关_第1张图片

5、浏览器分别访问地址

http://127.0.0.1:88/hello?url=baidu

http://127.0.0.1:88/hello?url=qq

查看效果

你可能感兴趣的:(项目)