linux下启动kafka

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fx_odyssey/article/details/82689152

前记:墨迹了几天,仍是云里雾里。记录下kafka启动过程,适合傻瓜新手,想弄明白原理的请绕到官网查看文档。

1、首先下载从github上下载 源码。如果机器上装有Git,直接clone更好,省的再解压。

解压命令:tar -zxvf librdkafka-master.tgz

2、下载 lib库。然后解压。与源码置于同意文件夹下。两个版本二选一即可。

解压命令:tar -zxvf kafka_2.11-0.10.2.0.tgz

3、我放置源码的目录是:/opt/app/ets/etsalessrc/fy_kafka/librdkafka-master;

lib文件放置目录为:/opt/app/ets/etsalessrc/fy_kafka/kafka_2.11-0.10.2.0

为了省事,直接用root账户办接下来的事情。键入命令:su - root,回车,输入root密码。

4、预备工作完事。开始编译源码。

先赋予权限:/opt/app/ets/etsalessrc目录下,命令:chmod 777 -R fy_kafka

进入目录:cd fy_kafka/librdkafka-master/

编译和安装,依次命令:

./configure

make

make install

5、到此,源码处理结束。

进入目录:/opt/app/ets/etsalessrc/fy_kafka/kafka_2.11-0.10.2.0/config

修改文件server.properties,将34行首个字符 ‘#’ 号去掉

6、进入目录:/opt/app/ets/etsalessrc/kafka_2.11-0.10.2.0

依次执行:./bin/zookeeper-server-start.sh config/zookeeper.properties &,启动zookeeper(&是为了能退出命令行)

./bin/kafka-server-start.sh config/server.properties &,启动kafka

查看端口:netstat -tunlp|egrep "(2181|9092)"

或者单独查看9092端口:netstat -ant | grep 9092

查看服务启动情况:jps

新开的服务QuorumPeerMain是指zookeeper的进程。Kafka是指kafka的进程。

7、创建主题 XML2DIP:

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

查看主题是否创建结果:

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

8、创建生产者:

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

9、另开一个终端页面,创建消费者:

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic XML2DIP

10、生产者页面随意输入消息回车,可以看到消费者页面出现输入的消息。

注:消费者开启前,在生产者页面输入的消息,消费者页面不显示。若要查看所有消息,输入命令:

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

关于kafka生产者和消费者的示例代码,在librdkafka里有示例。

1、C语言可参考代码:https://blog.csdn.net/lijinqi1987/article/details/76582067/,写的挺不错的

在运行my_producer或my_consumer时可能会报错"error while loading shared libraries xxx.so", 这是因为make的时候将librdkafak.so.1放在了/usr/local/lib下,在Linux的默认共享库路径/lib和/usr/lib下找不到,只要执行下面两句就可以了:

   echo "/usr/local/lib" >> /etc/ld.so.conf
   ldconfig

因为我建的topic名字是XML2DIP,所以生产者启动命令是:./my_producer localhost:9092 XML2DIP

消费者启动命令是:./my_consumer localhost:9092 XML2DIP

2、C++可参考代码:https://blog.csdn.net/jfu22/article/details/78194015

我将这里面提供的几个代码文件放在目录/opt/app/ets/etsalessrc/fy_kafka/kafka_inter下进行编译,凡是提示错误的直接注释(因为是输出字符串的代码,注释无影响。另外头文件引用路径改成自己的路径;接口改为“localhost:9092”,topic改为XML2DIP)。

编译命令为:g++ KafkaProducer.cpp Producer.cpp -o Producer -lrdkafka -lz -lpthread -lrt

执行前先开启XML2DIP的topic。执行命令:./Producer。然后在消费者上面就可以看到代码里写入的字符串了。

猜你喜欢

转载自blog.csdn.net/fx_odyssey/article/details/82689152