MicroZero教程 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的配置

名称类型必填说明默认值范围
ZeroAddressStringZeroCenter主机的IP地址或域名127.0.0.1域名不需要任何前缀
ZeroManagePortNumberZeroCenter的SystemManage服务的端口号80001025-65000
ZeroMonitorPortNumberZeroCenter的ZeroMonitor服务的端口号80011025-65000
ServiceKeyStringZeroCenter的安全校验令牌
LocalIpAddressString本地的真实IP地址通过Dns.GetHostAddresses取得Dns.GetHostAddresses取得的IP有可能不是准确的,为正确进行跟踪记录,故开放为配置项
DataFolderString本地数据目录见后续表格
LogFolderString本地日志目录见后续表格会使LogRecorder配置无效
ConfigFolderString本地配置目录见后续表格
StationIsolateBoolean站点独立目录falsetrue/false

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

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

作用于ZeroStation的配置,如果需要,每一个ZeroStation使用StationName为节点可单独配置
ApiTimeout为1.5版本新增配置

名称类型必填说明默认值范围
StationNameStringStation的名称与AppName相同
ShortNameStringStation的简称与StationName相同
SpeedLimitModelStringApiStation或QueueStation的多线程模式
TaskCpuMultipleNumber线程数与Cpu核数的比例关系10.01-128
MaxWaitNumber最大允许同时执行的任务数0xFF0xFF-0xFFFFF
ApiTimeoutNumberAPI最大执行超时时间(单位秒)60

SpeedLimitModel中配置项的不同

说明TaskCpuMultipleMaxWait侦听线程处理线程处理顺序
Single单线程无效无效11有序
ThreadCount多线程线程数=配置值×CPU数量无效无序
WaitCount多任务无效最大任务数量,超出时返回拒绝服务1无序
  • ApiStation默认为ThreadCount
  • QueueStation默认为Single
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值