從零到壹搭建一個商城架構--API網關

介紹:

  • SpringCloud 是微服務中的翹楚,最佳的落地方案。
  • Spring Cloud Gateway 是 Spring Cloud 新推出的網關框架,之前是 Netflix Zuul。網關通常在項目中爲了簡化前端的調用邏輯,同時也簡化內部服務之間互相調用的複雜度;具體作用就是轉發服務,接收並轉發所有內外部的客戶端調用;其他常見的功能還有權限認證,限流控制等等。

本博客會提到網關的基本轉發功能,熔斷功能,限流功能以及功能的綜合使用。

1、創建網關工程

此處省略…

2、配置網關

1)、由於我們網關也需要在註冊中心進行註冊,所以我們需要在pom文件中引入common工程

<dependency>
            <groupId>com.hsl.halmall</groupId>
            <artifactId>hslmall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </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 的值就是我們創建命名空間生成的一串數字
在這裏插入圖片描述

5、瀏覽器分別訪問地址

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

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

查看效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章