跳转至

系统配置

本文档中的配置项均在 Tardis 应用机器的 etc/config.properties 文件中进行配置。

集群隔离

AIR 支持通过配置进行 Master 范围选举,可独立部署查询集群和构建任务集群,实现集群间的资源隔离。

节点角色

AIR Tardis 应用节点分为以下 3 个角色:

角色 说明
Follower 节点不参与选举,仅作为从节点运行
Candidate 参与选举 Leader,所有节点的默认角色
Leader 通过选举产生的集群唯一 Leader 节点,负责集群的管理和协调工作

配置方式

登录 Tardis 应用机器,编辑 config.properties 配置文件,新增以下配置项:

node.role=FOLLOWER
  • 参数说明
配置项 可选值 默认值 说明
node.role FOLLOWER / CANDIDATE CANDIDATE 设置当前 Tardis 节点的角色
  • 设置为 FOLLOWER:该节点不参与 Leader 选举,适用于仅需要处理查询或构建任务的节点
  • 设置为 CANDIDATE:该节点参与 Leader 选举(默认行为),具备成为 Leader 的资格

ZooKeeper 认证配置

当 Tardis 连接的 ZooKeeper 集群启用了认证或节点 ACL 时,可通过以下配置开启 ZooKeeper 客户端认证。配置修改后需要重启 Tardis 应用。

Digest 认证示例

适用于 ZooKeeper 使用 digest 账号密码认证的场景:

zookeeper.mode=CLUSTER
zookeeper.connection=zk1.example.com:2181,zk2.example.com:2181,zk3.example.com:2181
zookeeper.auth.enabled=true
zookeeper.auth.scheme=digest
zookeeper.auth.credentials=your_user:your_password
zookeeper.acl.enabled=true

参数说明

配置项 可选值 默认值 说明
zookeeper.auth.enabled true / false false 是否开启 ZooKeeper 客户端认证。开启后必须同时配置 zookeeper.auth.schemezookeeper.auth.credentials
zookeeper.auth.scheme digest / sasl 等 ZooKeeper 支持的认证方式 ZooKeeper 认证 scheme。账号密码认证通常使用 digest
zookeeper.auth.credentials 认证凭据 ZooKeeper 认证凭据。digest 认证格式为 用户名:密码
zookeeper.acl.enabled true / false false 是否为 Tardis 新创建的 ZooKeeper 节点设置 CREATOR_ALL_ACL,开启后只有认证身份具备访问权限。开启该项时必须同时开启 zookeeper.auth.enabled

注意事项

  • 如果 ZooKeeper 已存在受 ACL 保护的 Tardis 路径,只需要访问已有受保护节点时,可开启 zookeeper.auth.enabled 并配置正确账号;是否开启 zookeeper.acl.enabled 取决于是否希望 Tardis 新创建的节点也使用认证 ACL。
  • zookeeper.acl.enabled=true 只影响新创建的 ZooKeeper 节点,不会自动修改已有节点的 ACL;已有节点如需收紧权限,需要由运维侧单独迁移 ACL。
  • 开启 zookeeper.acl.enabled=true 时,建议所有 Tardis 节点使用同一个 ZooKeeper 认证身份,避免不同节点创建的服务发现或选举节点互相不可读。
  • 如果认证配置缺失或账号没有对应路径权限,Tardis 启动时会在 ZooKeeper 服务发现或 Leader 选举阶段失败。

Kafka 认证配置

当 AIR 对接启用鉴权的 Kafka 集群时,可通过 tardis.event.kafka.properties 配置项传入 Kafka 客户端的安全参数。该配置项使用逗号 , 分隔多个键值对。

SASL_PLAINTEXT 协议

适用于仅启用 SASL 认证、未启用 SSL 传输加密的场景:

tardis.event.kafka.properties=security.protocol=SASL_PLAINTEXT,sasl.mechanism=SCRAM-SHA-256,sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="your_user" password="your_password";

SASL_SSL 协议

适用于同时启用 SASL 认证和 SSL 传输加密的场景。

场景 1:服务端使用公有 CA 证书(JVM 默认 truststore 可验证)

tardis.event.kafka.properties=security.protocol=SASL_SSL,sasl.mechanism=PLAIN,sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="your_user" password="your_password";

场景 2:自签证书,需要指定 truststore

tardis.event.kafka.properties=security.protocol=SASL_SSL,sasl.mechanism=PLAIN,sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="your_user" password="your_password";,ssl.truststore.location=/opt/tardis/etc/kafka.truststore.jks,ssl.truststore.password=truststore_pwd,ssl.endpoint.identification.algorithm=

注意事项

  • ssl.endpoint.identification.algorithm= 留空可关闭主机名校验(证书 CN 与 broker 主机不匹配时使用);若需保留校验,删掉这一项或写 https
  • truststore 路径请使用绝对路径,且文件需部署到 Tardis 运行节点。
  • sasl.jaas.config 末尾的分号 ; 必须保留。
  • 账号密码中若包含 , 会被解析器截断,这种情况只能先修改密码或改走环境变量。