kafka的安装及生产消费消息demo以及踩坑记录

1.下载kafka:

直接去官网下载: https://www.apache.org/dyn/closer.cgi?path=/kafka/2.0.0/kafka_2.11-2.0.0.tgz

或者右键复制链接地址,打开mac的终端直接:

wget http://mirrors.shu.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz

note:使用该命令之前最好下载一个mac的包管理工具Homebrew,然后执行

brew install wget 命令下载wget包

2.下载好之后到对应目录解压缩kafka:

tar zxvf kafka_2.11-2.0.0.tgz

3.进入kafka所在目录:

3.1首先需要后台启动zookeeper:

nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties &

3.2后台启动kafka:

nohup ./bin/kafka-server-start.sh config/server.properties &

3.3创建名字为'testkafka'的topic:

./bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic testkafka

报错1:

创建topic报错:

这是因为只启动了一个kafka节点,所以要再复制两份server.properties,并修改其中的broker.id为1.2.....依次递增,同一集群不允许有重复的。另外,说下为什么创建直接失败,看异常就可以知道,--replication-factor 是需要地方去备份的,而集群只有一个节点的话,只能放一份数据,没法放备份的.

解决办法是:

复制kafka/config路径下的server.properties文件为:

server1.properties和server2.properties

并修改这两个文件的配置项:

server1.properties:

broker.id=1

port=9093

log.dir=/tmp/kafka-logs-1

host.name=127.0.0.1

server2.properties:

broker.id=2

port=9094

log.dir=/tmp/kafka-logs-2

host.name=127.0.0.1

broker.id、port、log.dir在这三个配置项中都不一样。

修改完成之后启动:

nohup ./bin/kafka-server-start.sh config/server.properties &

nohup ./bin/kafka-server-start.sh config/server1.properties &

nohup ./bin/kafka-server-start.sh config/server2.properties &

继续创建topic:

./bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic testkafka

控制台输出:Created topic "testkafka" 说明创建topic成功

3.4通过下面命令可以获取topic主题列表

./bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181

3.5 模拟生产者生产消息:

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testkafka

报错2:

如果发现不停地有警告信息:

这是因为你的配置文件中的PLAINTEXT跟你请求的内容不同,将localhost改成PLAINTEXT配置的IP地址即可。

3.6 模拟消费者消费信息:

./bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic testkafka --from-beginning

报错3:

提示 zookeeper is not a recognized option

意思是使用 --zookeeper是一个过时的方法,此时,才知道原来在最新的版本中,这种启动方式已经被删除了,

附上0.90版本之后启动消费者的方法:

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testkafka --from-beginning

last:下面是为了显示看到生产消息和消费消息,在本机mac电脑上两个终端上生产者(大窗口)生产完消息,消费者(小窗口)立刻接收到消息的效果.

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181121G22RH800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券