openedge-hub 配置

listen: [必须]监听地址,例如:
  - tcp://0.0.0.0:1883 # Native进程模式下,如果不想暴露给宿主机外的设备访问,可以改成tcp://127.0.0.1:1883
  - ssl://0.0.0.0:1884
  - ws://:8080/mqtt
  - wss://:8884/mqtt
certificate: SSL/TLS证书认证配置项,如果启用ssl或wss必须配置
  ca: Server的CA证书路径
  key: Server的服务端私钥路径
  cert: Server的服务端公钥路径
principals: 接入权限配置项,如果不配置则Client无法接入,支持账号密码和证书认证
  - username: Client接入Hub用户名
    password: Client接入Hub密码
    permissions:
      - action: 操作权限。pub:发布权限;sub:订阅权限
        permit: 操作权限允许的主题列表,支持+和#匹配符
  - username: Client接入Hub用户名,使用证书双向认证可不配置密码
    permissions:
      - action: 操作权限。pub:发布权限;sub:订阅权限
        permit: 操作权限允许的主题列表,支持+和#匹配符
subscriptions: 主题路由配置项
  - source:
      topic: 订阅的主题
      qos: 订阅的QoS
    target:
      topic: 发布的主题
      qos: 发布的QoS
message: 消息相关的配置项
  length:
    max: 默认值:32k;最大值:268,435,455字节(约256MB),可允许传输的最大消息长度
  ingress: 消息接收配置项
    qos0:
      buffer:
        size: 默认值:10000,可缓存到内存中的QoS为0的消息数,增大缓存可提高消息接收的性能,若设备掉电,则会直接丢弃QoS为0的消息
    qos1:
      buffer:
        size:  默认值:100,等待持久化的QoS为1的消息缓存大小,增大缓存可提高消息接收的性能,但潜在的风险是Hub异常退出(比如设备掉电)会丢失缓存的消息,不回复确认(puback)。Hub正常退出会等待缓存的消息处理完,不会丢失数据。
      batch:
        max:  默认值:50,批量写QoS为1的消息到数据库(持久化)的最大条数,消息持久化成功后会回复确认(ack)
      cleanup:
        retention:  默认值:48h,QoS为1的消息保存在数据库中的时间,超过该时间的消息会在清理时物理删除
        interval:  默认值:1m,QoS为1的消息清理时间间隔
  egress: 消息发送配置项
    qos0:
      buffer:
        size:  默认值:10000,内存缓存中的待发送的QoS为0的消息数,若设备掉电会直接丢弃消息;缓存满后,新推送的消息直接丢弃
    qos1:
      buffer:
        size:  默认值:100,QoS为1的消息发送后,未确认(ack)的消息缓存大小,缓存满后,不再读取新消息,一直等待缓存中的消息被确认。QoS为1的消息发送给客户端成功后等待客户端确认(puback),如果客户端在规定时间内没有回复确认,消息会一直重发,直到客户端回复确认或者session关闭
      batch:
        max:  默认值:50,批量从数据库读取消息的最大条数
      retry:
        interval:  默认值:20s,消息重发时间间隔
  offset: 消息序列号持久化相关配置
    buffer:
      size:  默认值:10000,被确认(ack)的消息的序列号的缓存队列大小。比如当前批量发送了QoS为1且序列号为1、2和3的三条消息给客户端,客户端确认了序列号1和3的消息,此时序列号1会入列并持久化,序列号3虽然已经确认,但是还是得等待序列号2被确认入列后才能入列。该设计可保证Hub异常重启后仍能从持久化的序列号恢复消息处理,保证消息不丢,但是会出现消息重发,也因此暂不支持QoS为2的消息
    batch:
      max:  默认值:100,批量写消息序列号到数据库的最大条数
logger: 日志配置项
  path: 默认为空,即不打印到文件;如果指定文件则输出到文件
  level: 默认值:info,日志等级,支持debug、info、warn和error
  format: 默认值:text,日志打印格式,支持text和json
  age:
    max: 默认值:15,日志文件保留的最大天数
  size:
    max: 默认值:50,日志文件大小限制,单位MB
  backup:
    max: 默认值:15,日志文件保留的最大数量
status: Hub状态配置项
  logging:
    enable: 默认值:false,是否打印Hub的状态信息
    interval: 默认值:1m,状态信息打印时间间隔
storage: 数据库存储配置项
  dir: 默认值:var/db/openedge/data,数据库存储目录
shutdown: Hub退出配置项
  timeout: 默认值:10m,Hub退出超时时间