springcloud-sentinel

sentinel 介绍:

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 分为两个部分:

核心库(Java 客户端:不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
控制(Dashboard:基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

sentinel与 hystrix 的对比

功能 Sentinel Hystrix
隔离策略 基于并发数 线程池隔离/信号量隔离
熔断降级策略 基于响应时间或失败比率 基于失败比率
实时指标实现 滑动窗口 滑动窗口(基于 RxJava)
规则配置 支持多种数据源 支持多种数据源
扩展性 多个扩展点 插件的形式
基于注解的支持 即将发布 支持
调用链路信息 支持同步调用 不支持
限流 基于 QPS / 并发数,支持基于调用关系的限流 不支持
流量整形 支持慢启动、匀速器模式 不支持
系统负载保护 支持 不支持
实时监控 API 各式各样 较为简单
控制台 开箱即用,可配置规则、查看秒级监控、机器发现等 不完善
常见框架的适配 Servlet、Spring Cloud、Dubbo、gRPC 等 Servlet、Spring Cloud Netflix

sentinel 控制端安装

下载地址:https://github.com/alibaba/Sentinel/releases
安装环境:java1.8
启动指令

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

由于GitHub下载速度过慢,改用了docker 容器安装

docker pull bladex/sentinel-dashboard
docker run -d -p 8858:8858  -name sentinel  bladex/sentinel-dashboard

使用 docker ps 查看容器是否运行
打开默认地址localhost:8858 进入控制页面

在这里插入图片描述
访问8858端口即可访问sentinel后端管理界面。账号和密码都是sentinel。
在这里插入图片描述

配合nocs 使用

创建A服务 ,pom文件中引入依赖

 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

yml配置文件

server:
  port: 8099
spring:
  application:
    name: a-server
    #ncaos地址
  cloud:
    nacos:
      discovery:
        server-addr: 39.105.151.241:8848
    #sentinel地址
    sentinel:
      transport:
        dashboard: 39.105.151.241:8858
        #微服务所在服务器ip sentinel监控程序 根据client-ip+port端口拉取信息
        client-ip:localhsot
       #微服务节点,sentinel服务会主动拉取该端口数据
        port:8719
        

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(Application.class, args);
    }
}

启动项目 打开localhost:8858 查看
在这里插入图片描述
查看监控情况

注意:如果使用云主机服务器,需要把微服务jar部署到云服务器上,然后sentienl会主动拉取微服务的监控数据,如果微服务在本地winds上 云服务器上的sentinel无法访问winds上的微服务,会导致簇点链路下找不到微服务资源路径

猜你喜欢

转载自blog.csdn.net/qq_46645840/article/details/128934800