在迁移上云或测试场景下,您可以开启自动创建Topic功能,通过代码写入直接创建Topic,无需在控制台手动创建,帮助您简化操作,提升效率。
前提条件
您已购买并部署云消息队列 Kafka 版实例,且该实例必须满足以下条件:
项目 | 说明 |
状态 | 服务中 |
版本 | 大版本为2.2.0或以上版本,小版本为最新版本。 |
您可以在云消息队列 Kafka 版控制台的实例详情页面的基础信息区域查看实例的运行状态和版本。
注意事项
建议您仅在迁移场景或测试场景下使用该功能。在生产环境中,不建议开启自动创建Topic功能,如果开启,请务必不要在重大生产业务中使用。
专业版实例开启ACL后,不支持通过发送消息的方式自动创建Topic。
操作步骤
登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。
在实例列表页面,单击目标实例名称。
在实例详情页面的配置信息区域,打开自动创建Topic开关。
说明自动创建的Topic名称命名规则:
长度限制为3~64个字符。
只能包含英文、数字、短横线(-)以及下划线(_),且至少包含一个英文或数字。
开启自动创建Topic后,标准版实例可以通过发送消息的方式自动创建Topic,并在控制台上显示。
常见问题
是否可以自动化创建Topic?
可以,但不建议。云消息队列 Kafka 版通过阿里云控制台和OpenAPI管理Topic数据,不建议在生产环境中开启自动化创建Topic,主要原因如下:
自动化创建Topic不能进行细粒度的权限管控、资源操作审计等,存在安全管控问题。
自动化创建Topic会有资源远远超过限制、资源不能有效管控等问题,不利于线上稳定运行。
自动化创建Topic不能保证100%成功,可能影响业务的正常运行。更多信息,请参见自动化创建Topic失败后怎么办?。
什么场景适合开启自动化创建Topic?
一般情况下都不建议开启。但为了支持您快速迁移上云、测试等场景,可以开启自动化创建Topic。开启后,建议仅在迁移场景或者测试场景使用。
自动化创建Topic失败后怎么办?
自动化创建Topic失败后,您可以通过以下方法解决:
Topic数量不多时,建议您通过阿里云控制台和OpenAPI手动创建Topic。
查看日志或者根据以下原因自助排查:
非法操作:不合法操作导致Topic无法成功创建或者正常使用,影响业务正常运行。具体如下:
Topic名称:自动创建Topic的程序运行过程中,根据实际情况动态指定Topic,Topic名称不满足要求。例如命名非法、名称长度超过限制。
Topic配置:引擎选择不当,Topic配额不足、分区配额不足等。
开启ACL:开启ACL后,不支持通过发送消息的方式自动创建Topic。
不可控因素:客观因素概率性失败,如果触发则需要很长时间才能恢复,严重影响业务。例如网络抖动、服务端升级、管控平台升级维护、ECS宕机等情况,会大幅度增加创建Topic的耗时,导致创建失败。
业务冲突:自动创建Topic,容易触发不同业务名称冲突,如果触发会导致不同业务数据混合,很难发现问题。发现之后,恢复难度过大,且容易有不可逆转的损失。
延迟问题:自动创建Topic触发时,相对已有Topic,需要至少成倍的时间,会造成业务短暂中断,多数业务不能接受这个抖动。
超过限额:超过分区或者Topic数量限制都会无法创建Topic。
相关文档
迁移上云的具体操作,请参见迁移上云。
如果您希望使用控制台和API创建Topic,请参见创建Topic和CreateTopic - 创建Topic。