网关属性配置

    属性详解

    shenyu.NettyTcpProperties 配置

    ShenYu Netty 配置

    shenyu.instance 配置

    这是 ShenYu 网关注册到注册中心的相关配置,注册中心配置请参考 注册中心配置

    名称类型默认值是否必填说明
    enabledbooleanfalse是否启动
    registerTypeStringzookeeper使用哪个注册中心,目前支持zookeeper、etcd
    serverListsStringlocalhost:2181注册中心的地址。若使用集群,用 , 分隔
    props使用不同注册类型时,属性取值不同。

    使用不同的注册中心时,属性取值不同。

    当注册类型为 zookeeper 时,支持的属性配置如下:

    名称类型默认值是否必填说明
    sessionTimeoutint30000session超时时间(毫秒)
    connectionTimeoutint3000连接超时时间(毫秒)

    当注册类型为 etcd 时,支持的属性配置如下:

    名称类型默认值是否必填说明
    etcdTimeoutint30000etcd超时时间(毫秒)
    etcdTTLint5租约生存时间(秒)
    shenyu.httpclient 配置

    这是 ShenYu 网关中代理Http及SpringCloud协议后,用于发送代理请求的HttpClient配置。

    NameTypeDefaultRequiredDescription
    strategyStringwebClientNoHttpClientPlugin实现策略(默认使用webClietnt):
    - webClient:使用WebClientPlugin
    - netty:使用NettyHttpClientPlugin
    connectTimeoutint45000No连接超时时间 (毫秒),默认值为 45000
    responseTimeoutint3000No结果超时时间 (毫秒),默认值为 3000
    readerIdleTimeint3000No指定读空闲超时时间 (毫秒),默认值为 3000
    writerIdleTimeint3000No指定写空闲超时时间 (毫秒),默认值为 3000
    allIdleTimeint3000No指定读和写超时时间 (毫秒),默认值为 3000
    readTimeoutint3000No读取超时 (毫秒),默认值为 3000
    writeTimeoutint3000No输出超时 (millisecond),默认值为 3000
    wiretapBooleanfalseNo启用 Netty HttpClient 的窃听调试,默认值为 。
    keepAliveBooleanfalseNo启用或禁用请求的 Keep-Alive 支持,默认值为 false
    poolHttpClient 连接池配置
    proxyHttpClient 代理配置
    sslHttpClient SSL配置
    • pool config
    NameTypeDefaultRequiredDescription
    typeStringELASTICNoHttpClient连接池类型,默认值为ELASTIC
    - ELASTIC: 连接池可以按需缓存和增长。
    - FIXED: 连接池缓存并重用,有固定的最大连接数。
    - DISABLED: 连接池总是会创建一个新的连接。
    nameStringproxyNo连接池映射名称,默认为proxy
    maxConnectionsint2可用处理器数,最小值为16No仅适用于 FIXED 类型,在现有连接上开始挂起获取之前的最大连接数。
    默认值为可用处理器数2。
    (最小值为 16)
    acquireTimeoutint45000No仅适用于 FIXED 类型,等待获取连接的最长时间(毫秒)。默认值为 45000
    maxIdleTimeintNULLNoChannel 空闲多久关闭,如果为空,没有最大空闲关闭时间。
    • Proxy config

    Netty HttpClient 代理的相关配置:

    NameTypeDefaultRequiredDescription
    hostStringnullNoNetty HttpClient 代理配置的主机名。
    portStringnullNoNetty HttpClient 的代理配置端口。
    usernameStringnullNoNetty HttpClient 代理配置的用户名。
    passwordStringnullNoNetty HttpClient 代理配置的密码。
    nonProxyHostsPatternStringnullNo直连的主机列表的正则表达式 (Java)。
    • SSL config

    网关路由可以同时支持路由到http和https的后端服务,以下为SSL相关配置:

    过滤器相关配置
    • shenyu.file 配置

    文件过滤器的相关配置。

    名称类型默认值是否必填说明
    enabledBooleanfalse是否开启文件大小过滤
    maxSizeInteger10No上传文件最大值 ,(单位:MB)
    • shenyu.cross 配置

    跨域相关配置。

    名称类型默认值是否必填说明
    enabledBooleanfalse是否支持跨域请求
    allowedHeadersStringx-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, clientNo允许的Header头,多个请用 “,” 分割。新的”allowedHeaders”会在默认值基础上,去除重复的追加到”Access-Control-Allow-Headers”。
    allowedMethodsStringNo允许的方法
    allowedOriginString““No允许的Origin,当取值为””时,使用设置Access-Control-Allow-Origin
    allowedExposeString“*”No允许的Expose
    maxAgeString“18000”No最大年龄 (ms)
    allowCredentialsBooleantrueNo允许认证

    拒绝指定请求经过网关的相关配置

    名称类型默认值是否必填说明
    enabledBooleanfalse是否拒绝指定请求经过网关
    pathsArray匹配该列表的请求不经过网关(支持路径匹配)
    shenyu.sync 配置

    网关和Admin端使用数据同步的相关配置。

    使用websocket进行数据同步的属性配置如下:

    名称类型默认值是否必填说明
    urlsStringAdmin的websocket服务地址,多个地址用 , 分开 。
    名称类型默认值是否必填说明
    urlStringzookeeper的连接地址
    sessionTimeoutintsession的超时时间(毫秒)
    connectionTimeoutint连接超时时间(毫秒)

    使用http长轮询进行数据同步的属性配置如下:

    名称类型默认值是否必填说明
    urlStringAdmin的服务地址

    使用nacos进行数据同步的属性配置如下:

    • acm配置
    名称类型默认值是否必填说明
    enabledbooleanfalse是否启用
    endpointStringACM服务地址
    namespaceStringnamespace
    accessKeyStringaccessKey
    secretKeyStringsecretKey

    使用etcd进行数据同步的属性配置如下:

    名称类型默认值是否必填说明
    urlStringetcd连接地址

    使用consul进行数据同步的属性配置如下:

    名称类型默认值是否必填说明
    urlString连接地址
    waitTimeint请求consul服务拉取配置信息的超时时间(毫秒)
    watchDelayint同步间隔(毫秒)
    shenyu.extPlugin config

    Apache ShenYu对于动态加载自定义插件的配置

    NameTypeDefaultRequiredDescription
    enabledBooleantrueNo是否开启动态加载自定义插件,默认开启
    pathStringFalse动态加载自定义插件的路径,如果没配,默认为相对于当前网关路径下的 :/ext/lib,用户也可以使用-Dplugin-ext指定
    threadsInteger1False动态加载自定义插件的线程数
    scheduleTimeInteger300False动态加载自定义插件的间隔时间 ,单元:秒
    scheduleDelayInteger30False网关启动多久后去动态加载,单元:秒
    shenyu.scheduler config

    Apache ShenYu 调度线程模型配置

    NameTypeDefaultRequiredDescription
    enabledBooleanfalseNo是否开启使用调度线程
    typeStringfixedFalse调度线程池类型,默认为fixed,不配置或者其他则为弹性线程池
    threadsIntegerMath.max((Runtime.getRuntime().availableProcessors() << 1) + 1, 16)False固定线程池类型时候的线程数量
    shenyu.upstreamCheck config

    Apache ShenYu动态检测upstream的配置

    NameTypeDefaultRequiredDescription
    enabledBooleanfalseNo是否检测
    timeoutInteger3000False超时配置 (ms)
    healthyThresholdInteger1False健康因子
    unhealthyThresholdInteger1False不健康因子
    intervalInteger5000False检测的调度间隔时间
    printEnabledBooleantrueNo是否打印日志
    printIntervalInteger60000False打印日志的间隔调度时间
    shenyu.switchConfig config