private static AdminClient getAdminClient() {
Properties admainProp = new Properties();
admainProp.put("bootstrap.servers", "ip:9092");
return AdminClient.create(admainProp);
}
1. 创建主题
@deprecated
def create_topic(topicName: String): Unit = {
try {
val zkUtils = ZkUtils.apply("192.168.137.131:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled)
// 虽然过时了但是个人觉得是同步方法
AdminUtils.createTopic(zkUtils, topicName, 10, 1, new Properties, RackAwareMode.Enforced)
zkUtils.close()
println(s"$topicName 创建成功~~~")
} catch {
case e: Exception =>
println(s"$topicName 创建失败~~~")
e.printStackTrace()
}
}
2. 删除主题
@deprecated
def delete_topic(topicName: String): Unit = {
try {
val zkUtils = ZkUtils.apply("192.168.137.131:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled)
// 同步方法
AdminUtils.deleteTopic(zkUtils, topicName)
zkUtils.close()
println(s"$topicName 删除成功~~~")
} catch {
case e: Exception =>
println(s"$topicName 删除失败~~~~")
e.printStackTrace()
}
}
3. 获取top信息
public static Map<String, TopicDescription> SelectTopicInfo(String topicName) throws Exception {
DescribeTopicsResult result = getAdminClient().describeTopics(Arrays.asList(topicName));
KafkaFuture<Map<String, TopicDescription>> all = result.all();
Map<String, TopicDescription> topicInfo = all.get();
// topic描述信息
for(Map.Entry<String, TopicDescription> entry : topicInfo.entrySet()){
String mapKey = entry.getKey();
TopicDescription mapValue = entry.getValue();
System.out.println(mapKey+":"+mapValue);
}
// 分区信息
List<TopicPartitionInfo> mTopicPartitionInfo = all.get().get(topicName).partitions();
System.out.println(mTopicPartitionInfo);
return all.get();
}
4. 获取topic消息总数
public static void getTopicTotalMessageCount(String topicName) throws Exception {
// 借助Consumer来实现
Properties props = new Properties();
props.setProperty("bootstrap.servers", "ip:9092");
props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.ByteArrayDeserializer");
props.setProperty("group.id", "testToal");
props.setProperty("enable.auto.commit", "true");
props.setProperty("auto.commit.interval.ms", "1000");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList(topicStr));
Map<String, TopicDescription> topicInfo = GetTopicInfo(topicStr);
TopicDescription topicDescription = topicInfo.get(topicStr);
List<TopicPartitionInfo> mTopicPartitionInfo = topicDescription.partitions();
List<TopicPartition> partitions = new ArrayList<>();
for (int i = 0; i < mTopicPartitionInfo.size(); ++i) {
partitions.add(new TopicPartition(topicStr, i));
}
Map<TopicPartition, Long> offsets = consumer.endOffsets(partitions);
Map<TopicPartition, Long> earlyOffsets = consumer.beginningOffsets(partitions);
int totalCount = 0;
for (TopicPartition tp : offsets.keySet()) {
totalCount += (offsets.get(tp) - earlyOffsets.get(tp));
}
System.out.println("Total message count: " + totalCount);
consumer.close();
}
5. 判断主题是否存在
public static boolean topicExists(String topicName) {
// 注意下面几个参数的值适当大一些,否则可能会出现连接异常
// sessiontimeout in milliseconds
// connectionTimeoutMs connection timeout in milliseconds
// maxInFlightRequests
KafkaZkClient kafkaClient = KafkaZkClient.apply("192.168.137.131:2181",false,20000,20000,40000,Time.SYSTEM,"","");
return kafkaClient.topicExists(topicName);
相关推荐
使用Apache Kafka API AdminClient在Java中创建Kafka Topic
在本文中,我们将学习如何使用Apache Kafka的Java API中的AdminClient来创建Kafka Topic。本文介绍了如何使用Apache Kafka的Java API中的AdminClient来创建Kafka Topic。然后,我们使用NewTopic类创建一个新的Topic对象,并将其传递给adminClient.createTopics方法来执行创建操作。至此,我们成功地使用Apache Kafka的Java API中的AdminClient创建了一个Kafka Topic。
java创建kafka的topic
kafka 0.10及其以下版本创建topic 这个版本创建topic必须使用zookeeper,一般可以使用如下命令手动创建topic: bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test 那如何使用代码自动创建topic呢,可以使用AdminZkClient,示例如下: KafkaZkClient zkClient = KafkaZkClie
深入解析fio Benchmark测试:从源码到实践
本文深入解析fio Benchmark测试工具,从入门指南到源码架构分析,详细介绍了其核心模块、关键数据结构和I/O处理机制。通过实战案例展示如何优化存储性能测试,包括内存对齐、多线程调优等技巧,帮助开发者充分利用fio进行精准的存储性能评估。
使用Kafka客户端(spring-kafka)的Java API操作Kafka的Topic
记录:458 场景:在Spring Boot微服务集成Kafka客户端spring-kafka-2.8.2操作Kafka的Topic的创建和删除。
Windows环境Oracle19C安装与配置全攻略
本文详细介绍了在Windows环境下安装与配置Oracle19C数据库的完整流程,包括环境准备、安装步骤、网络配置、客户端工具设置及常见问题解决方案。特别针对Windows 10和Windows Server 2016及以上版本提供了优化建议,帮助用户高效完成Oracle19C的部署与维护。
手把手教你用Copilot插件在Obsidian里免费接入DeepSeek-R1(附硅基流动API密钥获取)
本文详细介绍了如何通过Copilot插件在Obsidian中免费接入DeepSeek-R1模型,实现智能知识管理。从硅基流动API密钥获取到插件配置,再到高级功能调优和实战应用技巧,手把手教你打造AI驱动的个人知识库。
java api 操作 kafka topic
// 创建 public static void createTopic(TopicBean topicBean, ZkBean zkBean) { String[] options = new String[]{ "--create", "--zookeeper", zkBean.getZkList(), // zk地址 "--partitions", topicBean.ge
【CarMaker实战指南】从零构建环形测试场景与车辆连续仿真
本文详细介绍了如何使用CarMaker软件从零构建环形测试场景与实现车辆连续仿真。通过分步指导搭建闭环道路、连接交叉路口、规划车辆轨迹等核心操作,帮助用户掌握CarMaker的基础应用技巧,并提供了常见问题排查与进阶优化建议,适用于车辆耐久性测试和自动驾驶算法验证等场景。
Kafka Java API操作topic
Kafka官方提供了两个脚本来管理topic,包括topic的增删改查。其中kafka-topics.sh负责topic的创建与删除;kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作。 上一篇文章中提到了如何使用客户端协议(client protocol)来创建topic,本文则使用服务器端的Java API对t
HFSS实战(三)——过孔via TDR仿真
在上一讲中,主要是通过观察S参数确定via的优化是否达到目标。但S参数只能看到一个整体的结果,并不知道via真实的阻抗是多少?想要单独确定via的阻抗,最好还是通过TDR的仿真。
【STK】手把手教你利用STK进行导弹和反导仿真04 - STK/MMT模块03 导弹飞行工具应用案例
飞行设置的工具栏就在附加窗口的中间,首先点击左边的General,修改这个项目的名字。然后在下拉的System中选择导弹的类型,这里我们选择远程。(4)输出数据文件到STK,任务窗口里选择Export Manager项,飞行数据输出到STK。项目可以命名为Test;(1)首先建立新项目,点击Flight菜单中的New Flight选项,见下图。首先看世界地图中间的红圈,是一个导弹形状的图标,这个图标表示的是导弹的发射点。选择下面的Export Manager,依次勾选红框的选项。我们拖动这个导弹的图标,
Apache Kafka:使用java和命令行方式操作topic(admin api)
当前版本:kafka_2.12-2.8.0 1. 声明 当前内容主要为本人学习kafka的topic的增删改查操作,当前内容参考官方文档 其中--bootstrap-server表示当前的kafka的地址和端口 --topic指定的就是主题名称 --create,--delete,--alter,--list/--describe表示各种操作 2. 使用命令行的操作 首先启动zookeeper,然后启动当前的kafka(当前kafka启动在192.168.1.105:9092) 1.创建topic ./
python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
出现该Bug的原因主要是 账号密码无法登录,但原先使用该代码测试qq或者163的时候是可以通过的!问题在于各个公司邮件所处理的代码方式不一样
使用spring-kafka的Java API操作Kafka集群的Topic
记录:462 场景:在Spring Boot微服务集成spring-kafka-2.8.2操作Kafka集群的Topic的创建和删除。
基于FPGA的64点fft变换verilog开发
这精度的损失在10bits看来对最后的误差的影响是存在是不可忽略的。此后,在这思想基础上又开发了高基和分裂基等快速算法,随着数字技术的高速发展,1976年出现建立在数论和多项式理论基础上的维诺格勒傅里叶变换算法(WFTA)和素因子傅里叶变换算法。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
使用kafka-clients的Java API操作Kafka集群的Topic
记录:464 场景:在Spring Boot微服务集成Kafka客户端kafka-clients-3.0.0操作Kafka集群的Topic的创建和删除。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
kafka topic的相关操作
转:https://www.cnblogs.com/huxi2b/p/6592862.html Kafka官方提供了两个脚本来管理topic,包括topic的增删改查。其中kafka-topics.sh负责topic的创建与删除;kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作。 上一篇文章中提到了如何使...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
使用Kafka客户端(kafka-clients)的Java API操作Kafka的Topic
记录:460 场景:在Spring Boot微服务集成Kafka客户端kafka-clients-3.0.0操作Kafka的Topic的创建和删除。
Kafka Topic shell操作+基准测试+java API
Kafka Topic shell javaAPI
使用Java API进行kafka topic开发
package org.sunny.two; import kafka.admin.AdminClient; import kafka.admin.AdminUtils; import kafka.admin.TopicCommand; import kafka.server.ConfigType; import kafka.utils.ZkUtils; import org.apache....
Kafka创建Topic(API方式)
Kafka官方提供了两个脚本来管理topic,包括topic的增删改查。其中kafka-topics.sh负责topic的创建与删除;kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作。 上一篇文章中...
KafKa集群的命令行操作以及JavaAPI
kafka集群操作-控制台操作 创建一个Topic 创建了一个名字为test的主题, 有三个分区,有两个副本 node01执行以下命令来创建topic cd /export/servers/kafka_2.11-0.10.0.0 bin/kafka-topics.sh --create --partitions 3 --replication-factor 2 --topic test --zookeeper node01:2181,node02:2181,node03:2181 查看T.
297



被折叠的 条评论
为什么被折叠?



