当前位置: 首页 > 面试题库 >

如何在Scala中公开Kafka的Java方法(带有分区的CommitSync)?

许永年
2023-03-14
问题内容

我正在尝试通过Scala公开Java方法(有关原始Java方法的更多详细信息-
它来自Kafka)

这是原始的Java方法:

public void commitSync(Map<TopicPartition,OffsetAndMetadata> offsets)

如何在Scala中公开参数并将其传递给方法?我有类似的东西:

def commitSync() = {
     consumer.commitSync(...)
}

谢谢。


问题答案:

您的Scala代码段看起来正确,这是我填写其余内容的方式:

import org.apache.kafka.clients.consumer.{KafkaConsumer, OffsetAndMetadata}
import org.apache.kafka.common.TopicPartition

import collection.mutable.Map
import collection.JavaConverters._

//initialise your consumer the way you want
val consumer = createKafkaConsumer(config, subscriptions)

//you could accept a scala.collection.mutable.Map here
def commitSync(offsets: Map[TopicPartition, OffsetAndMetadata]) = {
    //and then convert it to a java.util.Map
    consumer.commitSync(offsets.asJava)
}


 类似资料:
  • 我的第一个问题,所以请指出我的错误。老实说,我找不到任何类似的问题。 所以我试图写一些非常基本的东西,我真的不明白为什么我不能从我的主类的Util类调用一个方法。 Util类 主课呢 我如何调用我的和方法?? 我已经找了几天了,我真的不知道怎么找。 我用的是2个长方形,也就是2个长方形。它们非常相似,所以我只放一个。 代码看起来有点混乱,但那是因为我一直在尝试一切:)欢迎任何建议。顺便说一句,我使

  • 我想限制我的REST方法,这样用户就可以只使用GET和POST。但是,@RepositoryRestResource提供了包括DELETE和PUT在内的所有方法的说明。所以我只是想知道如何限制它? @RestController允许编写我们自己的方法,但是有很多相关的样板文件。 我一直在查看文档和github spring项目中的相关信息,但是没有找到任何相关信息。 有什么建议/帮助吗?谢谢大家!

  • 我试图为我的Kafka Connect Sink指定一个主题分区。特别是,我正在使用DataStax Apache Kafka连接器。 有大量与为 Kafka 使用者指定主题分区相关的文档和资源,例如: https://kafka-tutorials.confluent.io/kafka-console-consumer-read-specific-offsets-partitions/kafka

  • 这是如何创建新的10个主题分区的例子- 现在我们想在主题名称中添加10个额外的分区- 如何在现有的10个分区中添加额外的分区?

  • 我有一个带有单个分区的Kafka代理。要求执行以下操作: 从此分区读取 通过调用REST API转换消息 将转换后的消息发布到另一个REST API 将响应消息推送到另一个主题 我使用Kafka Streams通过以下代码实现这一点 以下是我的配置: 我在我的KeyValueMapper中寻找一种机制来执行以下操作: 如果任何REST API关闭,则会捕获异常 我希望在系统备份之前保持相同的偏移量

  • 我正在Scala 3中运行以下代码。x、 据我所知,它应该返回True,因为Int根据Scala文档扩展了AnyVal。 在Java中,下面的代码打印为true,这是可以理解的。