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

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

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

组件明细:

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

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

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

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

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-Eureka+config+bus+sleuth+admin,欢迎交流

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周凡首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值