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电脑上两个终端上生产者(大窗口)生产完消息,消费者(小窗口)立刻接收到消息的效果.
领取专属 10元无门槛券
私享最新 技术干货