中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

springcloud~gateway網關

有時間,我們在搭建(jian)(jian)微(wei)服(fu)務時,總希(xi)望拿(na)一個比較單純的,沒(mei)有污染其它代(dai)碼的項(xiang)目來從(cong)頭開始(shi)做,今天我們來建(jian)(jian)設一個最簡單的,gateway項(xiang)目,它被(bei)注冊(ce)到(dao)nacos里,路由(you)配置也存到(dao)nacos里,動(dong)態(tai)實現(xian)更新配置功能。

依賴配置

版本:com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0,com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2021.0.1.0,org.springframework.cloud:spring-cloud-starter-gateway:3.1.3

 <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
      <!-- 解決nacos的配置文件不加載問題-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
      <!-- 這個負載均衡如果不引入,在使用lb://時將出現503的錯誤-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>
    </dependencies>

bootstrap.yml配置

spring:
  application:
    name: lind-gateway
  cloud:
    nacos:
      config:
        server-addr: 192.168.xx.xx:8848
        groupId: DEFAULT_GROUP
        namespace: public
        file-extension: yaml #對應nacos上面的配置文件擴展名
      discovery:
        server-addr: 192.168.xx.xx:8848
logging:
  level:
    root: warn
    org.springframework.cloud.gateway: debug #日志級別,方便調試
    org.alibaba.nacos: debug

nacos里的lind-gateway.yaml配置

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: micro-product
        uri: lb://micro-product
        predicates:
          - Path=/product/**
      - id: micro-account
        uri: lb://micro-account
        predicates:
          - Path=/account/**
      - id: micro-order
        uri: lb://micro-order
        predicates:
          - Path=/order/**
      default-filters:
        - StripPrefix=1 #請求地址去掉第1位,例如你請求/product/md/create時,實際轉發到micro-product服務里的接口是/md/create

需要注意的地方

  • pom引用包時,需要添加spring-cloud-loadbalancer,以在gateway中實現負載協議
  • 使用nacos配置時,需要添加spring-cloud-starter-bootstrap
  • 如果是多級路徑轉發,加載添加StripPrefix,將可以在轉發到后端時,將路徑的前幾位去除

測試

  • 調用micro-product中的接口:
  • 接口代碼
	@RequestMapping(path = "/stock/deduct")
	public Boolean deduct(String commodityCode, Integer count) {
		stockService.deduct(commodityCode, count);
		return true;
	}
  • 正常響應
posted @ 2023-05-23 11:47  張占嶺  閱讀(215)  評論(0)    收藏  舉報