java - 从消费者端创建主题
问题描述
我不确定它是否可能。但是我想在这里问一下,因为在网上找不到任何相关的资源。
这可能吗,我可以从消费者方面创建主题吗?
通常我们创建消费者来访问代理中的现有主题。(在经纪人级别创建)
但是有什么办法,我可以创建主题然后使用它吗?我想在消费者端配置上完成所有这些工作。首先创建if not exists
然后使用它。
这是可能的还是不是一个有效的问题?
解决方案
如果您想这样做,可以通过触发异常来实现。如果消费者将尝试连接到主题并且尚未创建,您可以启动一个函数来创建一个AdminClient
您可以在其中创建主题的位置。
但是您仍然需要填充它,以便您可以使用 Worker(Source + Task for xml) 创建一个线程并用它填充您的主题(在同一个函数中)!
这里创建一个主题AdminCLient
:
Properties properties = new Properties();
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
properties.put(ConsumerConfig.ALLOW_AUTO_CREATE_TOPICS_CONFIG, true);
Admin adminClient = Admin.create(properties);
adminClient.createTopics(Collections.singleton(new NewTopic( {Topic name}, 1, (short) 1)));
希望对您有所帮助
推荐阅读
- python - 如何从 dbfs:/mnt/datalake/ 中提取 /mnt/datalake/?
- git - 有没有办法在公共 github 中查看公共 repo 的推送日志?
- laravel - Laravel 5.5 重定向回输入和错误不适用于生产
- javascript - 在 Reactjs 的非功能组件中使用自定义钩子
- git - git 是否将更改后的大文件完全上传到远程,或者可以只上传差异?
- sas - 数一数。从元数据中观察 SAS 数据集
- java - 如何将 p6spy 与 proxydatasource 一起使用
- c# - IProgressDialog 不显示选取框样式
- mysql - MySQL:如何在忽略几个数据库的情况下恢复转储
- macos - 在批处理模式下找不到 Stata 命令