背景:因为因为公司的项目需要使用AWS的kafka,但是在创建和使用过程中都遇到了一些报错和麻烦,毕竟老外的东西,和阿里云、华为使用起来还是不一样。
一、创建
(创建的配置过程就略了,就是配置一下可用区、型号)
注意,使用过程中一定要打开:
如果不打开公网访问和IAM的权限,就无法创建firehose
firehose就类似一个kafka的消费者端配置,我这边的消费者是AWS的S3。
二、如何用命令管理kafka:
下载命令地址:https://kafka.apache.org/downloads
解压之后进入目录:
cd kafka_2.13-2.8.1/bin/,可以看到kafka相关的很多命令了:
[sconcept@ip-10-8-4-105 kafka]$ cd kafka_2.13-2.8.1/bin/
[sconcept@ip-10-8-4-105 bin]$ ls
client.properties kafka-console-consumer.sh kafka-leader-election.sh kafka-run-class.sh trogdor.sh
connect-distributed.sh kafka-console-producer.sh kafka-log-dirs.sh kafka-server-start.sh windows
connect-mirror-maker.sh kafka-consumer-groups.sh kafka-metadata-shell.sh kafka-server-stop.sh zookeeper-security-migration.sh
connect-standalone.sh kafka-consumer-perf-test.sh kafka-mirror-maker.sh kafka-storage.sh zookeeper-server-start.sh
kafka-acls.sh kafka-delegation-tokens.sh kafka-preferred-replica-election.sh kafka-streams-application-reset.sh zookeeper-server-stop.sh
kafka-broker-api-versions.sh kafka-delete-records.sh kafka-producer-perf-test.sh kafka-topics.sh zookeeper-shell.sh
kafka-cluster.sh kafka-dump-log.sh kafka-reassign-partitions.sh kafka-verifiable-consumer.sh
kafka-configs.sh kafka-features.sh kafka-replica-verification.sh kafka-verifiable-producer.sh
举例,创建topic:
./kafka-topics.sh --create --zookeeper <你的kafka地址> 2 --partitions 1 --topic product
kafka地址在:
因为AWS的kafka是使用zookeeper的方式进行管理的,所以要招zookeeper的方式进行连接,地址一定要选纯文本的方式。
使用topic命令时候可能会出现报错,类似以下:
[2024-10-10 13:33:42,522] WARN Session 0x0 for server z-2.sconceptmqprd.y5xuv6.c1.kafka.me-central-1.amazonaws.com/<unresolved>:2181, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
java.nio.channels.UnresolvedAddressException
at java.base/sun.nio.ch.Net.checkAddress(Net.java:149)
at java.base/sun.nio.ch.Net.checkAddress(Net.java:157)
at java.base/sun.nio.ch.SocketChannelImpl.checkRemote(SocketChannelImpl.java:816)
at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:839)
at org.apache.zookeeper.ClientCnxnSocketNIO.registerAndConnect(ClientCnxnSocketNIO.java:277)
at org.apache.zookeeper.ClientCnxnSocketNIO.connect(ClientCnxnSocketNIO.java:287)
at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1021)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1064)
AI解读之后,可能会说:1.网络不通 2.地址问题 3.配置问题,都是鬼扯。
其实就是kafka命令的版本问题,换了一个版本就解决了。