sentinel-阿里推出的一款服务降级熔断的组建,官方地址为https://github.com/alibaba/Sentinel

之前微服务因为使用的是spring-cloud,因此使用的Hystrix组件,切换到sentinel也是非常简单,sentinel更可以支持限流。

 

默认情况下,使用sentinel的客户端是与服务器端这样交互信息的,

客户端的资源限流情况会发送到服务器端,服务器端进行收集与展现,并可以动态进行参数配置。

当dashboard进行了参数设置,会直接下发到client进行调整,当server与client服务重启的时候,一切的配置都失效了,默认情况都是存在内存的。

 

线上环境,一般是采取push方式,可以用apollo配置中心,也可以使用Nocas. 我使用的是apollo,

借用网上的图,方便大家清晰了解。

 

默认环境下的启动与测试

一、启动sentinel dashboard

       可以到官网下载sentinel dashboard的jar包,通过java -jar可以直接启动。

       可以下载官网源代码,自己编译sentinel-dashboard模块,打包,然后java -jar可以直接启动,默认8080,可以通过参数改端口。

例如:

java -Dserver.port=8088 -jar sentinel-dashboard-1.3.0.jar

   项目启动后,可以通过浏览器直接访问到界面,默认用户名和密码为sentinel sentinel。

   注意:只有当客户端的资源被访问的时候,dashboard才可以收集到相关信息,界面中才会出现项目及资源情况,才可以进行

相关配置。

  

 

二、客户端使用

1) 在客户端pom.xml中加入依赖包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
2)在application.yml中增加配置,客户端名称,sentinel-dashboard的ip和端口
project:
  name: demoTestA
spring:
  cloud:
    sentinel:
      transport:
        dashboard: 47.110.60.30:8088

3) 在需要使用的资源上加入注解配置@SentinelResource 即可,当访问该url时,客户端与dashboard会建立连接,在dashboard可以查看testw这个资源的使用情况。

@GetMapping(value="testw")
@SentinelResource(value="testw")
public String testw(){
  log.info("this is a log test!");
  return "ok";
}

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐