sentinel 启动配置项


sentinel 启动配置项

        

官网:https://sentinelguard.io/zh-cn/docs/general-configuration.html

         

            

                                    

启动配置项

         

参数设置

# 虚拟机设置:-Dkey=value,优先级最高
-Dcsp.sentinel.config.file=classpath:sentinel.properties

# 配置文件设置
-Dcsp.sentinel.config.file参数指定配置文件的位置,
默认为classpath:sentinel.properties,编码为UTF-8

            

基础配置项

project.name:项目名称,如果没有指定,默认为main函数的类名
csp.sentinel.app.type:应用类型,默认为0
csp.sentinel.metric.file.single.size:单个监控日志文件的大小,默认为50m
csp.sentinel.metric.file.total.count:监控日志文件的总数上限,默认为6
csp.sentinel.statistic.max.rt:最大的有效响应时长(ms),超出此值则按照此值记录,默认为4900
csp.sentinel.spi.classloader:SPI加载时使用的ClassLoader,默认为给定类的 ClassLoader

              

日志配置项

csp.sentinel.log.dir:sentinel日志目录,默认为${user.home}/logs/csp/
csp.sentinel.log.use.pid:日志文件名中是否加入进程号(区分单机部署多个应用的情况),默认false
csp.sentinel.log.output.type:日志输出类型,file(文件,默认)、console(控制台)

说明:如果一个机器部署多个应用,需将csp.sentinel.log.use.pid设置为true

           

sentinel-transport-common配置项

csp.sentinel.dashboard.server:控制台的地址,制定控制台后客户端会自动向该地址发送心跳包
csp.sentinel.heartbeat.interval.ms:心跳发送周期,单位毫秒
csp.sentinel.api.port:http api server的端口号,默认为8719(可不提供端口,若冲突会自动向下探测可用端口)
csp.sentinel.heartbeat.client.ip:指定心跳包中本机的ip

              

                

                                    

spring cloud配置类

   

SentinelProperties

@ConfigurationProperties(
    prefix = "spring.cloud.sentinel"
)
@Validated
public class SentinelProperties {
    private boolean eager = false;
    private boolean enabled = true;
    private String blockPage;
    private Map<String, DataSourcePropertiesConfiguration> datasource;
    private SentinelProperties.Transport transport;
    private SentinelProperties.Metric metric;
    private SentinelProperties.Servlet servlet;
    private SentinelProperties.Filter filter;
    private SentinelProperties.Flow flow;
    private SentinelProperties.Log log;
    private Boolean httpMethodSpecify;
    private Boolean webContextUnify;


*********
Transport

    public static class Transport {
        private String port = "8719";
        private String dashboard = "";
        private String heartbeatIntervalMs;
        private String clientIp;


*********
Metric

    public static class Metric {
        private String fileSingleSize;
        private String fileTotalCount;
        private String charset = "UTF-8";


*********
Servlet

    public static class Servlet {
        private String blockPage;


*********
Filter

    public static class Filter {
        private int order = -2147483648;
        private List<String> urlPatterns = Arrays.asList("/**");
        private boolean enabled = true;


*********
Flow

    public static class Flow {
        private String coldFactor = "3";


*********
Log

    public static class Log {
        private String dir;
        private boolean switchPid = false;

          

DataSourcePropertiesConfiguration

public class DataSourcePropertiesConfiguration {
    private FileDataSourceProperties file;     //本地文件存储
    private NacosDataSourceProperties nacos;   //nacos存储
    private ZookeeperDataSourceProperties zk;  //zookeeper存储
    private ApolloDataSourceProperties apollo; //apollo存储
    private RedisDataSourceProperties redis;   //redis存储
    private ConsulDataSourceProperties consul; //consul存储

          

NacosDataSourceProperties

public class NacosDataSourceProperties extends AbstractDataSourceProperties {
    private String serverAddr;
    private String username;
    private String password;
    @NotEmpty
    private String groupId = "DEFAULT_GROUP";
    @NotEmpty
    private String dataId;
    private String endpoint;
    private String namespace;
    private String accessKey;
    private String secretKey;

    public NacosDataSourceProperties() {
        super(NacosDataSourceFactoryBean.class.getName());
    }

          

AbstractDataSourceProperties

public class AbstractDataSourceProperties {
    @NotEmpty
    private String dataType = "json";   //数据默认用json格式存储
    @NotNull
    private RuleType ruleType;          //规则类型
    private String converterClass;
    @JsonIgnore
    private final String factoryBeanName;
    @JsonIgnore
    private Environment env;

    public AbstractDataSourceProperties(String factoryBeanName) {
        this.factoryBeanName = factoryBeanName;
    }

           

RuleType:限流规则、降级规则、系统限流规则、黑白名单规则等

public enum RuleType {
    FLOW("flow", FlowRule.class),
    DEGRADE("degrade", DegradeRule.class),
    PARAM_FLOW("param-flow", ParamFlowRule.class),
    SYSTEM("system", SystemRule.class),
    AUTHORITY("authority", AuthorityRule.class),
    GW_FLOW("gw-flow", "com.alibaba.csp.sentinel.adapter.gateway.common.rule.GatewayFlowRule"),
    GW_API_GROUP("gw-api-group", "com.alibaba.csp.sentinel.adapter.gateway.common.api.ApiDefinition");

    private final String name;
    private Class clazz;
    private String clazzName;

    private RuleType(String name, Class clazz) {
        this.name = name;
        this.clazz = clazz;
    }

    private RuleType(String name, String clazzName) {
        this.name = name;
        this.clazzName = clazzName;
    }

          

         

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在UAT环境和生产环境中,一般要求以哨兵(sentinel)模式部署。哨兵模式是一种常见的部署方式,而Cluster模式则主要用于规模较大的应用场景,对于一般的情况而言使用Cluster模式会增加复杂度。在sentinel模式下,需要配置多个,包括至少一个Master的配置和一个或多个Slave的配置。 如果想要开启feign对Sentinel的支持,可以通过配置文件设置"feign.sentinel.enabled=true"。 Sentinel配置环境方面有以下几个要点: 1. 查看机器列表以及机器的健康情况:这是通过收集Sentinel客户端发送的心跳包来实现的,用于判断机器是否在线。 2. 监控:Sentinel通过客户端暴露的监控API,定期拉取并聚合应用的监控信息,实现秒级的实时监控。 3. 规则管理和推送:Sentinel可以统一管理和推送规则。 4. 鉴权:在生产环境中,鉴权非常重要。每个开发者需要根据实际情况定制鉴权规则。 要启动Sentinel控制台,需要确保安装了JDK 1.8及以上版本,然后使用以下命令启动Sentinel控制台: ```shell java -Dserver.port=8094 -Dcsp.sentinel.dashboard.server=localhost:8094 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar ``` 如果没有权限,可以使用以下命令给jar包设置权限: ```shell chmod 777 sentinel-dashboard-1.8.0.jar ``` 通过以上配置,你可以登录Sentinel控制台进行配置环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis及Sentinel配置自动化工具](https://download.csdn.net/download/laotian/11612392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Sentinel配置使用](https://blog.csdn.net/Andrew0219/article/details/126105709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值