scala - Scala如何订阅多个kafka主题
问题描述
我想在scala中将字符串数组/列表转换为util.Collection[String]对象。我尝试了多种方法,但没有成功。
import org.apache.kafka.clients.consumer.KafkaConsumer
object KafkaConsumerApp {
def main(args: Array[String]): Unit = {
val prop:Properties = new Properties()
prop.put("bootstrap.servers","192.168.1.100:9092,192.168.1.141:9092,192.168.1.113:9092,192.168.1.118:9092")
prop.put("key.deserializer","org.apache.kafka.common.serialization.StringDeserializer")
prop.put("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer")
val consumer = new KafkaConsumer(prop)
val topics = List[String] ("my_topic_partition","my_topic_partition")
val a = Collections.singletonList(topics)
consumer.subscribe(a)
}
}
consumer.subscribe(a) 返回编译时错误
Error:(24, 14) overloaded method value subscribe with alternatives:
(x$1: java.util.regex.Pattern)Unit <and>
(x$1: java.util.Collection[String])Unit
cannot be applied to (java.util.List[List[String]])
consumer.subscribe(a)
解决方案
你不需要做一个Singleton
List
. AList
已经是Collection
.
val: List[String] topics = List("my_topic_partition","my_topic_partition")
consumer.subscribe(topics)
如果您需要它是Java,只需输入并.asJava
使用topics.asJava
导入import collection.JavaConverters._
推荐阅读
- javascript - 通过 php 解析 Javascript src 以消除未使用的分支
- python - TypeError:“numpy.float32”对象不可调用
- cmd - Ubuntu在用户名有空格时更改默认用户
- dictionary - 如何实现地图缩减算法以在图中查找所有长度为 2 的路径
- google-apps-script - Google Apps 脚本 - 有条件地将数据从其他 Google 表格检索到概览表格
- r - 带 boxcox 的线性模型,用于带零的数据框。无法预测所需的值
- python - KeyError 排序数据框 - 无法识别列名/索引
- vb.net - 如何使用鼠标滚轮将 ListView 滚动一行而不是默认的三行?
- python - 没有文件 IO 的多进程和多进程:OSError:[Errno 24] 打开的文件太多
- amcharts - 在 amcharts 中展开和折叠条形图