首页
/ Julie Ops 核心配置参数详解

Julie Ops 核心配置参数详解

2025-06-19 20:23:31作者:卓炯娓

概述

Julie Ops 是一个强大的 Kafka 拓扑管理工具,它通过配置文件来定义和管理 Kafka 集群中的各种资源。本文将深入解析 Julie Ops 中最关键的核心配置参数,帮助用户更好地理解和使用这个工具。

访问控制配置

访问控制方法选择

Julie Ops 支持两种主要的访问控制方法:

  • ACLs:传统的 Kafka 访问控制列表
  • RBAC:基于角色的访问控制(需要 Confluent Platform)

配置参数:

topology.builder.access.control.class=com.purbon.kafka.topology.roles.SimpleAclsProvider

可选值:

  • RBAC: com.purbon.topology.roles.RBACProvider
  • ACLs: com.purbon.kafka.topology.roles.SimpleAclsProvider

RBAC 详细配置

要配置 RBAC,需要设置 MDS (Metadata Service) 服务器的连接信息:

topology.builder.mds.server = "http://localhost:8090"
topology.builder.mds.user = "mds"
topology.builder.mds.password = "mds-secret"

同时需要为各个服务配置集群 ID:

topology.builder.mds.kafka.cluster.id = "foobar"
topology.builder.mds.schema.registry.cluster.id = "schema-registry-cluster"
topology.builder.mds.kafka.connect.cluster.id = "connect-cluster"

Schema 管理配置

如果需要使用 Julie Ops 管理 Schema,需要配置 Schema Registry 的地址:

schema.registry.url = "http://localhost:8081"

状态管理配置

Julie Ops 需要维护一些状态信息,默认使用文件系统存储,但也支持多种后端:

topology.builder.state.processor.class=com.purbon.kafka.topology.backend.FileBackend

可选后端:

  • 文件系统:com.purbon.kafka.topology.backend.FileBackend
  • Redis:com.purbon.kafka.topology.backend.RedisBackend
  • AWS S3:com.purbon.kafka.topology.backend.S3Backend
  • Google Cloud Storage:com.purbon.kafka.topology.backend.GCPBackend

Redis 后端需要额外配置:

topology.builder.redis.host = "example.com"
topology.builder.redis.port = 6379

主题命名规则定制

Julie Ops 允许自定义主题命名规则,使用 Jinja2 模板语法:

topology.topic.prefix.format = "{{env}}_{{team}}_{{project}}_{{topic}}"
topology.project.prefix.format = "{{env}}_{{team}}_{{project}}"
topology.topic.prefix.separator = "_"

ACL 优化配置

为减少 ACL 或 RBAC 绑定的数量,可以启用优化模式:

topology.acls.optimized=true

启用后,Julie Ops 会使用前缀绑定而非为每个用户和主题创建单独的绑定。

内部主题前缀配置

用于避免删除不受 Julie Ops 控制的主题:

kafka.internal.topic.prefixes.0=_
kafka.internal.topic.prefixes.1=topicPrefixA
kafka.internal.topic.prefixes.2=topicPrefixB

DLQ 主题管理

基本配置

启用自动生成 DLQ 主题:

topology.dlq.topics.generate=true

允许/拒绝列表配置:

topology.dlq.topics.allow.list=["allowedTopic1", "allowedTopic2"]
topology.dlq.topics.deny.list=["deniedTopic1", "deniedTopic2"]

DLQ 主题命名

自定义 DLQ 主题命名格式:

topology.topic.dlq.prefix.format="{{topic}}_error"
topology.topic.dlq.label="error"

拓扑验证配置

可以配置一系列验证规则来检查拓扑文件:

topology.validations.0=com.purbon.kafka.topology.validation.topology.CamelCaseNameFormatValidation
topology.validations.1=com.purbon.kafka.topology.validation.topic.PartitionNumberValidation

用户可以自定义验证规则,只需实现相应的接口。

连接器主题创建控制

控制是否允许连接器主体创建主题:

topology.connector.allow.topic.create=false

Julie Ops 内部主体配置

排除特定主体(如 Julie Ops 自身使用的)的 ACL 管理:

julie.internal.principal="User:Julie"

状态管理策略

主题状态管理

控制是否从集群获取主题状态:

topology.state.topics.cluster.enabled=false

全局状态管理

控制是否从集群获取所有资源状态:

topology.state.cluster.enabled=false

资源管理范围控制

主题管理范围

topology.topic.managed.prefixes.0=User:AService
topology.topic.managed.prefixes.1=User:BService

服务账号管理范围

topology.service.accounts.managed.prefixes.0=User:AService
topology.service.accounts.managed.prefixes.1=User:BService

消费者组管理范围

topology.group.managed.prefixes.0=NameSpaceA
topology.group.managed.prefixes.1=NameSpaceB

Schema 主题管理范围

topology.subject.managed.prefixes.0=NameSpaceA
topology.subject.managed.prefixes.1=NameSpaceB

HTTPS/TLS 配置

配置 HTTPS 连接所需的证书:

ssl.keystore.location=/path/to/keystore.p12
ssl.keystore.password=keystore_password
ssl.truststore.location=/path/to/truststore.p12
ssl.truststore.password=truststore_password
ssl.key.password=key_password

注意:Julie Ops 仅支持 PKCS12 格式的证书存储。

总结

本文详细介绍了 Julie Ops 的核心配置参数,涵盖了访问控制、状态管理、资源命名、验证规则等多个方面。合理配置这些参数可以帮助用户更好地管理 Kafka 集群资源,确保安全性和一致性。建议用户根据实际需求选择合适的配置方案。

登录后查看全文
热门项目推荐