3.2. 复制用于高可用性的主题


基本主题属性为主题设置默认分区和复制因素数量,该主题适用于在没有显式设置这些属性的情况下创建的主题,包括何时自动创建主题。

# ...
num.partitions=1
auto.create.topics.enable=false
default.replication.factor=3
min.insync.replicas=2
replica.fetch.max.bytes=1048576
# ...

对于高可用性环境,建议将复制因素增加到至少 3 个主题,并将所需的最少同步副本数设置为复制因素减 1。

auto.create.topics.enable 属性默认为启用,以便在生成者和消费者需要时自动创建不存在的主题。如果使用自动主题创建,您可以使用 num.partitions 为主题设置默认分区数量。通常,此属性被禁用,以便在创建显式主题时通过主题提供更多控制。

为了实现数据持久性,需要在 topic 配置中设置 min.insync.replicas,并在 producer 配置中使用 acks=all 来发送提交确认。

使用 replica.fetch.max.bytes 设置复制领导分区的每个后续信息的最大大小(以字节为单位)。根据平均消息大小和吞吐量更改这个值。当考虑读/写缓冲区所需的内存分配总量时,可用内存还必须能够满足所有后续者乘以的最大复制消息大小。

delete.topic.enable 属性默认启用,以允许删除主题。在生产环境中,您应该禁用此属性以避免意外删除主题,从而导致数据丢失。但是,您可以临时启用它并删除主题,然后再次禁用它。

注意

在 OpenShift 上运行 AMQ Streams 时,主题 Operator 可以提供 operator 风格的主题管理。您可以使用 KafkaTopic 资源来创建主题。对于使用 KafkaTopic 资源创建的主题,使用 spec.replicas 设置复制因素。如果启用了 delete.topic.enable,您还可以使用 KafkaTopic 资源删除主题。

# ...
auto.create.topics.enable=false
delete.topic.enable=true
# ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.