• Spring Cloud Alibab Sentinel服务端搭建


    一:简介

    Sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

    Sentinel 具有以下特性:
    丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
    完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
    广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
    完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等


    项目地址: https://github.com/alibaba/Sentinel
    开发文档: https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

    二:Sentinel控制台

    Sentinel版本:V1.8.1

    系统环境:Windows 10

    JDK版本:1.8.0_131

    1、Jar包安装Sentinel控制台:
    从release页面,下载最新版本的控制台jar包。

    2、源码构建Sentinel控制台:
    下载控制台工程使用以下命令将代码打包成一个 fat jar: mvn clean package

    Sentinel控制台启动:

    java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=dashboard -Dsentinel.dashboard.auth.username=sentinel  -Dsentinel.dashboard.auth.password=123456 -jar -Dcsp.sentinel.log.dir=./logs/csp -Dcsp.sentinel.log.use.pid=true sentinel-dashboard-1.8.1.jar

     Sentinel启动界面:

    从启动日志来看Sentinel其实是一个基于Spring Boot 开发的应用

    Sentinel控制台:

    访问:http://127.0.0.1:9999/,推荐使用Chrome浏览器,跳转到登录界面,默认账号和密码:sentinel,也可以通过启动配置文件来修改。

    三:启动配置项

    Sentinel 提供如下的配置方式:

    JVM -D 参数方式
    properties 文件方式(1.7.0 版本开始支持)
    其中,project.name 参数只能通过 JVM -D 参数方式配置(since 1.8.0 取消该限制),其它参数支持所有的配置方式。

    优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。
    用户可以通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties)。默认 Sentinel 会尝试从 classpath:sentinel.properties 文件读取配置,读取编码默认为 UTF-8。

    注:1.7.0 以下版本可以通过旧的 ${user_home}/logs/csp/${project.name}.properties 配置文件进行配置(除 project.name 和日志相关配置项)。
    注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以使用 Spring Cloud Alibaba,通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档。

    基础配置项

    名称含义类型默认值是否必需备注
    project.name 指定应用的名称 String null  
    csp.sentinel.app.type 指定应用的类型 int 0 (APP_TYPE_COMMON) 1.6.0 引入
    csp.sentinel.metric.file.single.size 单个监控日志文件的大小 long 52428800 (50MB)  
    csp.sentinel.metric.file.total.count 监控日志文件的总数上限 int 6  
    csp.sentinel.statistic.max.rt 最大的有效响应时长(ms),超出此值则按照此值记录 int 4900 1.4.1 引入
    csp.sentinel.spi.classloader SPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoader String default 若配置 context 则使用 thread context ClassLoader。1.7.0 引入

    注:其中 project.name 项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名

     日志相关配置项

    名称含义类型默认值是否必需备注
    csp.sentinel.log.dir Sentinel 日志文件目录 String ${user.home}/logs/csp/ 1.3.0 引入
    csp.sentinel.log.use.pid 日志文件名中是否加入进程号,用于单机部署多个应用的情况 boolean false 1.3.0 引入
    csp.sentinel.log.output.type Record 日志输出的类型,file 代表输出至文件,console 代表输出至终端 String file 1.6.2 引入

    注意:若需要在单台机器上运行相同服务的多个实例,则需要加入 -Dcsp.sentinel.log.use.pid=true 来保证不同实例日志的独立性

    数据传输配置项

    名称含义类型默认值是否必需
    csp.sentinel.dashboard.server 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port String null
    csp.sentinel.heartbeat.interval.ms 心跳包发送周期,单位毫秒 long null 非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值
    csp.sentinel.api.port 本地启动 HTTP API Server 的端口号 int 8719
    csp.sentinel.heartbeat.client.ip 指定心跳包中本机的 IP String - 若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境

    注:csp.sentinel.api.port 可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。

  • 相关阅读:
    艰苦创业,无怨无悔,他靠养蜂开拓创业路!
    农民工如何拥有500多家加盟连锁店,看他是怎样做到的?
    从小面馆到餐饮王国,他的成功靠的是什么?
    夫妻合体创业,两月收入15万,他们是怎样做到的?
    农民王永宝,打造了一片乡村旅游乐土
    10年时间,从摆地摊到开连锁店,他们夫妻二人如何度过?
    F5 服务说明
    python 获取pool 成员状态
    CloudCC CRM探讨:精细流程管理与员工悟性培养
    CloudCC CRM探讨:精细流程管理与员工悟性培养
  • 原文地址:https://www.cnblogs.com/huxiaoguang/p/14730902.html
Copyright © 2020-2023  润新知