微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3

nacos2.1.1-gateway-Sentinel1.8.3实战,其中nacos为本地集群,如果不想弄集群的话,可以直接用单机;

上面链接的工程中包含了consumer,provider和nacos-gateway,还有一个自定义路由的gateway 

微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第1张图片

组件明细:

功能 名称
注册中心和配置中心  nacos
网关  spring-cloud-gateway
流量控制、熔断降级、系统负载保护  Sentinel

1首先安装nacos2.1.1服务端(建议采用MySQL方式:需要先建好库和表)和sentinel

nacos集群启动后,访问页面http://127.0.0.1:8848/nacos/index.html(默认用户名和密码都是nacos)可以看到如下(我本地是做了三个端口的集群):

微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第2张图片

2sentinel启动后,访问http://127.0.0.1:8080/#/dashboard(默认用户名和密码都是sentinel),看到页面如下(刚开始没有应用,启动nacos-gateway和provider后调用一次可以看到下图):

微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第3张图片

3启动nacos后,配置GatewayStarterApplication-dev.yaml和dynamic-routing.json(自定义路由工程gateway需要),然后启动nacos-gateway,provider和customer

#GatewayStarterApplication-dev.yaml
server:
  port: 8082
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080
    gateway:
      routes:
        - id: consumer-api
          uri: lb://consumer
          predicates:
            - Path=/cum/**
          filters:
            - StripPrefix=1
        - id: provider-api
          uri: lb://provider
          predicates:
            - Path=/pvr/**
          filters:
            - StripPrefix=1
      discovery:
        locator:
          enabled: true  #表明gateway开启服务注册和发现的功能,并且spring cloud gateway自动根据服务发现为每一个服务创建了一个router,这个router将以服务名开头的请求路径转发到对应的服务。
          lowerCaseServiceId: true   #是将请求路径上的服务名配置为小写(因为服务注册的时候,向注册中心注册时将服务名转成大写的了),比如以/service-hi/*的请求路径被路由转发到服务名为service-hi的服务上。
          filters:
            - StripPrefix=1
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848,127.0.0.1:8838,127.0.0.1:8858
#dynamic-routing.json
{
  "refreshGatewayRoute": true,
  "routeList": [
    {
      "id": "consumer-api",
      "predicates": [
        {
          "name": "Path",
          "args": {
            "_genkey_0": "/cum/**"
          }
        }
      ],
      "filters": [
        {
          "name": "StripPrefix",
          "args": {
            "_genkey_0": "1"
          }
        }
      ],
      "uri": "lb://consumer",
      "order": 0
    },
    {
      "id": "provider-api",
      "predicates": [
        {
          "name": "Path",
          "args": {
            "_genkey_0": "/api/pvr/**"
          }
        }
      ],
      "filters": [
        {
          "name": "StripPrefix",
          "args": {
            "_genkey_0": "2"
          }
        }
      ],
      "uri": "lb://provider",
      "order": 0
    }
  ]
}

4验证环节: 通过postman请求provider和customer

微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第4张图片

 微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第5张图片

 微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第6张图片

微服务实战-springcloud-nacos2.1.1-gateway-Sentinel1.8.3_第7张图片

 按照上面的步骤应该可以实现图中的效果,如果中途有任何问题,可以在文章下面留言,另有文章微服务-springcloud-Eureka+config+bus+sleuth+admin,欢迎交流

你可能感兴趣的:(nacos,gateway,微服务,springcloud)