系统启动配置项及示例

config.properties是gateway自身启动的一些配置项 常用配置如下:

#启动模式, 启动时拉取数据或同步数据的方式
#yamlpath可配置一个文件或者一个目录,
#如果是目录如gateway.yamlPath=./conf/yaml,会扫描此目录下所有以.yaml结尾的文件
gateway.yamlPath=./conf/yaml/gateway.yaml
gateway.libPath=./lib
gateway.logConfigPath=./conf/logback.xml

#共享线程池设置
gateway.sharedPool.available=false
gateway.sharedPool.corePoolSize=5
gateway.sharedPool.maximumPoolSize=50
gateway.sharedPool.keepAliveTime=60
gateway.sharedPool.timeUnit=SECONDS

#定时任务模块设置
gateway.task.available=true
gateway.task.tickPeriod=5000
gateway.task.idleTickStep=10000
gateway.task.maxTickPeriod=100000

#agent模块, 独自监听一个端口, 可以通过向该端口发请求控制网关内存中的对象状态,
#可以达到修改运行中的网关配置的效果, 可自定义扩展功能
#网关关闭命令, 网关守护进程, 都依赖该端口
gateway.agent.available=false
#如果该模块不启动或者该端口未开启则守护进程和关闭命令不会生效
gateway.agent.port=8888
gateway.agent.protocolType=http
gateway.agent.contentType=json

#是否启动网关守护进程
#gateway.agent.initFunction=protect
#心跳间隔
gateway.agent.heartBeat=10

线程共享池

Gateway使用共享线程池限制gateway使用的线程数量,避免因创建过多的channel造成系统资源耗尽的问题。

属性 描述
available 是否启用
corePoolSize 共享池基础大小,默认6
maximumPoolSize 共享池最大线程数,默认100
keepAliveTime 共享池线程最大闲置时间,默认60000
unit 共享池闲置时间计算单位,默认MILLISECONDS

环境变量机制

在不同的环境下,可以使用不同的环境变量配置文件,比如,dev,uat,prd等环境,在切换切换网关的使用场景时, 需要加载不同的环境变量文件,可通过切换环境变量类型,自动加载对应类型的环境变量文件,也可以重新指定环境变量文件的路径.

如何切换环境变量类型

网关提供了三种方式来指定当前环境类型,网关会根据指定的当前环境类型,来寻找对应的环境变量配置文件,如果什么都不指定,默认会去conf目录下获取env.properties文件.

  1. 通过指定网关入口的main函数的传入参数,

    如网关的启动命令

    java -Xms64m -Xmx256m -cp ../lib/gateway-boot.jar;../lib/gateway-core.jar; com.tesla.gateway.boot.Main dev
    

    这样就指定了环境变量文件的类型, 实际会去加载 env-dev.properties

  2. 从系统变量中获取环境变量类型,

    如果在操作系统级别的环境变量中设置了env.id=prd, 这里规定,key必须为env.id , 则获取到的环境变量配置文件的命名应为env-prd.properties.

  3. 从jvm参数中获取环境变量类型,

    如果在jvm参数中设置了env.id=uat,则获取到的环境变量配置文件的命名应为env-uat.properties. ​

如何指定环境变量文件路径

网关提供了三种方式来指定环境变量配置文件的路径,路径可以是一个文件夹,也可以是一个文件. 如果路径是一个文件,则不需要指定环境变量类型

  1. 通过指定网关入口的main函数的传入参数,

    如网关的启动命令

    java -Xms64m -Xmx256m -cp ../lib/gateway-boot.jar;../lib/gateway-core.jar; com.tesla.gateway.boot.Main dev C:/Users/test/gateway/env

    这样就指定了环境变量文件的类型, 和环境变量文件夹的路径, 网关启动时会去 C:/Users/test/gateway/env 文件夹下加载 env-dev.poperties

  2. 从系统变量中获取配置文件的路径

    如果在操作系统级别的环境变量中设置了env.path=./conf, 这里规定,key必须为 env.path, 网关启动时会去conf目录下加载对应类型的配置文件

  3. 从jvm参数中获取环境变量路径

    如果在jvm参数中设置了env.path=./conf , 网关启动时会根据环境变量的类型加载conf目录下对应的文件

  4. 如果环境变量路径未配置

    网关会首先遍历conf目录下所有的文件,然后遍历home目录下所有的文件(home目录就是Conf目录的上一层),然后遍历classpath目录, 直到找到符合环境变量类型的文件

  5. 如果未指定env.id, 且未找到环境变量文件,不会报错

环境变量文件配置示例

  #pathNo
  epcc.pathNo=1285
  qcup.pathNo=1286
  # cmbc cacf config(anbao)
  cmbc.ca.config.server.url=http://127.0.0.1:8000
  ## RSA config
  cmbc.ca.config.digest.alg=sha256
  cmbc.ca.config.timeout=10000
  cmbc.ca.config.appid=ECB
  cmbc.ca.config.connect.timeout=10000
  cmbc.ca.config.vstk.version=2.0.306.5
  cmbc.ca.config.enc.alg=aes
  ## SM3 config
  cmbc.ca.config.sm.digest.alg=SM3
  cmbc.ca.config.sm.timeout=10000
  cmbc.ca.config.sm.appid=ECB
  cmbc.ca.config.sm.connect.timeout=10000
  cmbc.ca.config.sm.vstk.version=2.0.306.5
  cmbc.ca.config.sm.enc.alg=SM4

  cmbc.sm3.enc.sn=4000421180

  gateway.wlink.port=8421
  gateway.nlink.port=8422

  epcc.wlink.uri=/epcc/cmbcService.html
  qcup.wlink.uri=/qcup/cmbcService.html

  pcip.nlink.addr=127.0.0.1:6898
  pcip.nlink.dist.addr=127.0.0.1:6898

  epcc.idc.started.1=true
  epcc.idc.flag.1=10
  epcc.idc.url.1=http://127.0.0.1:8888/preSvr10
  epcc.idc.started.2=true
  epcc.idc.flag.2=11
  epcc.idc.url.2=http://127.0.0.1:8888/preSvr11
  epcc.idc.started.3=true
  epcc.idc.flag.3=20
  epcc.idc.url.3=http://127.0.0.1:8888/preSvr20
  epcc.idc.flag.6=31
  epcc.idc.url.6=http://127.0.0.1:8888/preSvr31

  epcc.idc.url.default=http://127.0.0.1:8888/preSvr10

  qcup.url=http://127.0.0.1:8889/

环境变量的获取

如在config.properties中或者yaml配置文件中获取环境变量, 统一格式为%{环境变量中的key}, 如想要获取 环境变量中 epcc.pathNo=1285 在yaml文件或config文件中 使用%{epcc.pathNo}

如下:

outbound_channel#outbound_channel_epcc:
  values:
  #出访网联
  - id: outbound_channel_epcc
    channelType: outbound
    protocolType: http
    contentType: http-xml
    loadBalance: custom
    connectorRouterExpression: 'outbound_connector_epcc${IDCFLAG}'
    available: true
    preParserFilters: XmlMsgParseSignFilter
    postParserFilters: XmlMsgVerifySignFilter
    prePackerFilters: XmlMsgAddHeaderFilter
    postPackerFilters: [ XmlMsgAddSignFilter, RequestHttpHeadersFilter, OutboundReachedFilter ]
    localRecognizers:
    - id: request_http_headers_recognizer
      type: localContext
      keyMap:
        request_http_headers:
          Accept-Encoding: 'identity'
          Content-Type: 'application/xml;charset=utf-8'
          Connection: 'close'
          Content-Length: '$'
          MsgTp: '${outMsgTp}'
          OriIssrId: 'C1030511000483'
    values:
    - id: outbound_connector_epcc
      started: true
      uri: '%{epcc.idc.url.default}'
      connectionConfig: { useConnectionPool: false }
    - id: outbound_connector_epcc%{epcc.idc.flag.1}
      started: %{epcc.idc.started.1}
      uri: '%{epcc.idc.url.1}'
      connectionConfig: { useConnectionPool: false }
    - id: outbound_connector_epcc%{epcc.idc.flag.2}
      started: %{epcc.idc.started.2}
      uri: '%{epcc.idc.url.2}'
      connectionConfig: { useConnectionPool: false }
    - id: outbound_connector_epcc%{epcc.idc.flag.3}
      started: %{epcc.idc.started.3}
      uri: '%{epcc.idc.url.3}'
      connectionConfig: { useConnectionPool: false }

配置示例

config_nozk.properties,注意该配置文件在放到Conf目录下后, 命名一定要为config.properties

Copyright © 民生科技有限公司 2019 all right reserved,powered by Gitbook联系方式: wanglihang@mskj.com
修订时间: 2019-09-03 17:48:17

results matching ""

    No results matching ""