Spring Cloud Alibaba(四)--Gateway与Sentinel

1、这次主要是集成了Gateway和Sentinel,目前的调用链路是:

个人理解:

  • 对外提供的接口统统走网关,如果是内部系统调用,则没必要走网关,直接通过RPC进行调用
  • service A可以调用 dao B,当然也可以直接调用 Service B来达到目的。直接调用dao B的原因前面的文章里解释过,问题在于是否可以直接调用Service B。之前看过孙玄的视频,不建议service横向调用,可以在service和dao之前再提取一层公共服务层,这样就避免了横向调用。他的原则是只能从上往下调用。不过个人解决这个公共层其实很难提取出来,因为界限很模糊,实现起来费脑。我觉得直接横向调用问题也不大,就像我们在做单体架构程序时,有时也会在相互平台的service之间进行调用,减少代码复写的情况。如果是简单的交互接口可以直接调用dao,如果是复杂的业务逻辑,service B已经实现了,而且业务界限上也属于service B,则横向调用也合理。如果提取公共的服务接口层来避免横向调用,那么有个问题就是如果这个公共服务层提取的是一些和业务逻辑关系不太的服务还可以操作,如果业务本身就是属于service B,那么放到公共层也不太合理。(有更好的建议欢迎留言)

2、添加的依赖文件为:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--# 该依赖提供了sentinel对spring cloud gateway框架的适配-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>
        </dependency>
        <!--# 连接sentinel控制台-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-transport-simple-http</artifactId>
        </dependency>

3、在Gateway与Sentile集成的时候主要添加的配置文件为:

    sentinel:
      transport:
        #配置Sentin dashboard地址
        dashboard: localhost:8080
        # 默认8719端口,假如被占用了会自动从8719端口+1进行扫描,直到找到未被占用的 端口
        port: 8719
    gateway:
      routes:
        - id: provider
          uri: lb://iot-provider
          predicates:
            - Path=/api/provider/**
          filters:
            - RewritePath=/api/provider/(?<segment>.*),/$\{segment}
  • sentinel的Dashboard的服务地址
  • gateway的路由规则

4、如果监控controller接口,则只需要加上@SentinelResource(value="supplier-list")注解即可,同样service方法也可以。

4、如果使用sentinel监控dubbo接口的调用,添加以下依赖即可:

        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-dubbo-adapter</artifactId>
        </dependency>

代码连接 https://github.com/buff0000/iot tag:v0.0.4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值