我正在使用 AWS MSK 并且我想启用 ACL,但是当 ACL 开启时我无法创建主题。我正在使用命令行工具进行所有操作。这是我正在做的事情的总结:
所以问题是该主题是在 Zookeeper 上创建的,但代理无法访问它。大概是由于我遗漏了一些 ACL 规则。
我运行的命令的原始输出:
ubuntu@ip-172-31-27-70:~/kafka_2.12-2.2.1/bin$ ./kafka-topics.sh --bootstrap-server $B --command-config ~/client1.properties \
--create --topic test3 --partitions 1 --replication-factor 1
Error while executing topic command : org.apache.kafka.common.errors.TimeoutException: Aborted due to timeout.
[2019-09-30 17:16:19,389] ERROR java.util.concurrent.ExecutionException: …Run Code Online (Sandbox Code Playgroud) amazon-web-services apache-kafka apache-zookeeper kafka-topic aws-msk
我是Kotlin的新手,很难理解init函数在Array的上下文中是如何工作的.具体来说,如果我正在尝试String使用以下类型的数组:
val a = Array<String>(a_size){"n = $it"}
Run Code Online (Sandbox Code Playgroud)
这有效,但"n = $it"意味着什么?这看起来不像init函数,因为它在花括号内而不在括号内.
如果我想要一个数组,Int那个init函数或花括号里面的部分是什么样的?
我试图拆分用户输入的字符串.我的代码看起来类似于以下内容:
val aList = Array(5, {Array<String>(2){ " " }})
aList[0] = ArrayList(input.nextLine().split(" ")) // `split` returns a List
Run Code Online (Sandbox Code Playgroud)
但这会导致以下错误:
error: type inference failed. Expected type mismatch: inferred type is ArrayList<String!> but Array<String> was expected.
经过一番挖掘后,我发现T!操作员意味着T or T?.我怎样才能投ArrayList<String!>来Array<String>?