阿里限流神器Sentinel夺命连环 17 问?

这是《spring Cloud 进阶》专栏的第五篇文章,这篇文章介绍一下阿里开源的流量防卫兵Sentinel,一款非常优秀的开源项目,经过近10年的双十一的考验,非常成熟的一款产品。往期文章如下:

阿里面试这样问:Nacos、Apollo、Config配置中心如何选型?这10个维度告诉你!

阿里面试败北:5种微服务注册中心如何选型?这几个维度告诉你!

文章目录如下:

阿里限流神器Sentinel夺命连环 17 问?

2、什么是sentinel?

sentinel顾名思义:卫兵;在Redis中叫做哨兵,用于监控主从切换,但是在微服务中叫做流量防卫兵

Sentinel 以流量为切入点,从流量控制熔断降级系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:

丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。同时 Sentinel 提供 Java/Go/C++ 等多语言的原生实现。

完善的 SPI 扩展机制:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

Sentinel 的主要特性如下图

阿里限流神器Sentinel夺命连环 17 问?

Sentinel 分为两个部分:

核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。

控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

总之一句话:sentinel真牛逼,完爆Hystrix.........

3、sentinel和Hystrix有何区别?

不多说了,总之一句话:Hystrix赶紧放弃,用sentinel......

具体区别如下图:

阿里限流神器Sentinel夺命连环 17 问?

4、sentinel版本如何选择?

由于陈某写的是Spring Cloud 进阶一个系列,使用的聚合项目,因此版本还是保持和之前文章一样,不清楚的可以看这篇:五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?

这里选择的spring-cloud-alibaba-dependencies的版本是2.2.1.RELEASE,因此sentinel版本选择1.7.1,大家可以根据自己的版本选择对应sentinel的版本,版本对应关系如下图:

阿里限流神器Sentinel夺命连环 17 问?

注意:一定要按照官方推荐的版本适配,否则出现意想不到的BUG追悔莫及.........

5、Sentinel 控制台如何安装?

sentinel和nacos一样,都有一个控制台,但是这里不用自己手动搭建一个微服务,官方已经搭建好了,只需要下载对应得jar包运行即可。下载地址:https://github.com/alibaba/Sentinel/tags

选择对应得版本下载即可,我这里选择1.7.1版本,下载的jar包如下图:

当然你可以通过源码构建:mvn clean package

注意:JDK版本必须>=1.8

此时我们只需要运行这个jar包即可,命令如下:

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.1.jar

上述参数含义如下:

-Dserver.port:指定启动的端口,默认8080

-Dproject.name:指定本服务的名称

-Dcsp.sentinel.dashboard.server:指定sentinel控制台的地址,用于将自己注册进入实现监控自己

启动成功之后,浏览器访问::8080,登录页面如下图:

阿里限流神器Sentinel夺命连环 17 问?

默认的用户名和密码:sentinel/sentinel

登录成功之后页面如下:

阿里限流神器Sentinel夺命连环 17 问?

可以看到目前只有一个服务sentinel-dashboard被监控了,这个服务就是自己

注意:上述参数都是可选的,没必要可以不填。

那么问题来了:默认的用户名和密码在生产环境上肯定不能用,如何修改呢?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzxyf.html