ZeroNet教程 2.2 ZeroApplication配置文件说明

ZeroApplication配置采用NetCore建议的配置方式,以Json文件为主。应用配置文件为部署目录下的appsettings.json,全局配置文件为配置目录(/usr/config)下的zero.json文件

appsettings.json

{
  "ASPNETCORE_ENVIRONMENT_": "Development",
  "urls": "http://*:8080",
  "AppName": "Demo",
  "Zero": {
    "Demo": {
      /*Station名称*/
      "StationName": "test",
      /*独立的数据与日志目录*/
      "StationIsolate":true,   
      /*限速模式(Single 单线程 ThreadCount 按线程数限制 WaitCount 按等待数限制)*/
      "SpeedLimitModel": "ThreadCount",
      /*最大等待数-WaitCount模式有效*/
      "MaxWait": 512,
      /*最大Task与Cpu核心数的倍数关系-ThreadCount模式有效 */
      "TaskCpuMultiple": 0.1
    }
  }
}

zero.json

{
  "Zero": {
    "Global": {
      /*ZeroCenter主机IP地址或域名*/
      "ZeroAddress": "192.168.240.132",      
      /*ZeroCenter管理端口号*/
      "ZeroManagePort": 8000,
      /*ZeroCenter监测端口号*/
      "ZeroMonitorPort": 8001,
      /*服务器安全令牌*/
      "ServiceKey": "77E6A88F"
    }
  }
}

1 顶级配置项

1.1. ASPNETCORE_ENVIRONMENT_

aspnet.core相同配置

Development
  • 根目录为应用程序部署目录

取Environment.CurrentDirectory值而后会赋配置值 rootPath

  • 不合并zero.json全局配置文件
  • datas,logs也在应用程序文件夹下
Procuction

事实上只要是非Development即为生产配置

  • 根目录遵行部署规范,根目录在应用程序部署的上一级目录,即部署根目录

取Environment.CurrentDirectory值的上一级目录而后会赋配置值 rootPath

  • 合并zero.json全局配置文件

合并项为appsettings.json中的缺失项,即zero.json中的Zero.Global配置项会填充到应用的Zero.[AppName]配置

  • datas,logs在部署根目录对应文件夹下

1.2. AppName

应用名称,必须配置。否则运行时将抛出“无法找到配置[AppName],请在appsettings.json中设置”的异常

1.3. urls

仅用于Asp.net类型项目,如"http://*:8080",用于定义新的Http端口号

2 Zero节

2.1 Global节

在zero.json中使用,如用在appsettings.json会造成混乱.

2.2 [AppName]节

具体App的配置

如不存在,会完全使用zero.json中的Zero.Global节的配置,此时StationName与AppName相同

说明
  • 由于使用AppName作为节,也可以使用zero.json一个配置文件进行详细配置,应用程序的appsettings.json中配置顶级配置项即可.
  • Global节的数据结构与[AppName]节完全相同

基础配置项

作用于整个ZeroApplication的配置

名称 类型 必填 说明 默认值 范围
ZeroAddress String ZeroCenter主机的IP地址或域名 127.0.0.1 域名不需要任何前缀
ZeroManagePort Number ZeroCenter的SystemManage服务的端口号 8000 1025-65000
ZeroMonitorPort Number ZeroCenter的ZeroMonitor服务的端口号 8001 1025-65000
ServiceKey String ZeroCenter的安全校验令牌
LocalIpAddress String 本地的真实IP地址 通过Dns.GetHostAddresses取得 Dns.GetHostAddresses取得的IP有可能不是准确的,为正确进行跟踪记录,故开放为配置项
DataFolder String 本地数据目录 见后续表格
LogFolder String 本地日志目录 见后续表格 会使LogRecorder配置无效
ConfigFolder String 本地配置目录 见后续表格
StationIsolate Boolean 站点独立目录 false true/false

特殊文件夹在缺省状态因StationIsolate配置产生的变化

类型 false true 说明
本地日志 /usr/zero/logs /usr/zero/logs/demo
本地数据 /usr/zero/datas /usr/zero/datas/demo
本地配置 /usr/zero/config /usr/zero/config/demo 本文件描述的配置文件不受此影响

站点配置项

作用于ZeroStation的配置,如果需要,每一个ZeroStation使用StationName为节点可单独配置

名称 类型 必填 说明 默认值 范围
StationName String Station的名称 与AppName相同
ShortName String Station的简称 与StationName相同
SpeedLimitModel String ApiStation或QueueStation的多线程模式
TaskCpuMultiple Number 线程数与Cpu核数的比例关系 1 0.01-128
MaxWait Number 最大允许同时执行的任务数 0xFF 0xFF-0xFFFFF

SpeedLimitModel中配置项的不同

说明 TaskCpuMultiple MaxWait 侦听线程 处理线程 处理顺序
Single 单线程 无效 无效 1 1 有序
ThreadCount 多线程 线程数=配置值×CPU数量 无效 无序
WaitCount 多任务 无效 最大任务数量,超出时返回拒绝服务 1 无序
  • ApiStation默认为ThreadCount
  • QueueStation默认为Single

猜你喜欢

转载自blog.csdn.net/longhutian/article/details/87343792
2.2
今日推荐