kafka demo

环境:ubuntu10 2台(32位)+JDK1.8(32位)+kafka2.11

 

假设ubuntu1的IP定义192.168.200.129,ubuntu2的IP定义192.168.200.130。

 

1、下载kafka.去官网下载2进制版本即可。

2、在ubuntu1机器上解压kafka_2.11-0.10.0.0.tgz。

     在ubuntu2机器上解压kafka_2.11-0.10.0.0.tgz。

3、kafka里面自带zookeeper.

      3.1)   ubuntu1上修改config目录下的server.properties,添加:

listeners=PLAINTEXT://192.168.200.129:9092

     3.2) ubuntu1上启动zookeeper.  

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

    3.3)   ubuntu1上启动kafka

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

   3.4) ubuntu1上启动生产者。

./kafka-console-producer.sh --broker-list 192.168.200.129:9092 --topic test

   3.5) ubuntu2上启动消费者。

./kafka-console-consumer.sh --zookeeper 192.168.200.129:2181 --topic test --from-beginning

   3.6)在ubuntu1上输入hello,将在ubuntu2上显示hello.说明成功了。

 

扩展:

1、判断kafka有没有启动成功,输入jps命令,如果已经正常启动,结果如下:

4629 Kafka
4417 QuorumPeerMain
5141 Jps

 

2、一开始没有修改ubuntu1上面的server.properties中的listener配置,ubuntu2上的消费者始终报如下错:

kafka.common.KafkaException: fetching topic metadata for topics [Set(test)] from broker [ArrayBuffer(BrokerEndPoint(0,zk1,9092))] failed

 

google了一下,外国的一篇帖子和我情况很像,解决方案给了我灵感,就是没有显式设置监听的IP,如果不显式指定,监听的是localhost,就是127.0.0.1,这样除本机外是访问不了的。

参考链接

 

3、本文章参考来源。

 

4、kafka官网

 

5、kafka java demo1

kafka java demo2

kafka java demo3

 

6、kafka原理详解

kafka集群

 

7、kafka启动脚本,就是将启动zookeeper和kafka的命令集成在一起。

 

8、kafka集群安装,又一个例子。

 

9、cnblog上一个关于kafka简单的介绍

 

 

 

以下是一个简单的 C++ Kafka 生产者示例代码: ```cpp #include <iostream> #include <string> #include <librdkafka/rdkafkacpp.h> int main() { std::string brokers = "localhost:9092"; std::string topic_name = "test_topic"; RdKafka::Conf *conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL); std::string errstr; if (conf->set("bootstrap.servers", brokers, errstr) != RdKafka::Conf::CONF_OK) { std::cerr << "Failed to set broker list: " << errstr << std::endl; delete conf; return 1; } RdKafka::Producer *producer = RdKafka::Producer::create(conf, errstr); if (!producer) { std::cerr << "Failed to create producer: " << errstr << std::endl; delete conf; return 1; } RdKafka::Topic *topic = RdKafka::Topic::create(producer, topic_name, nullptr, errstr); if (!topic) { std::cerr << "Failed to create topic: " << errstr << std::endl; delete producer; delete conf; return 1; } std::string message_str = "Hello, Kafka!"; RdKafka::ErrorCode resp = producer->produce(topic, RdKafka::Topic::PARTITION_UA, RdKafka::Producer::RK_MSG_COPY, const_cast<char *>(message_str.c_str()), message_str.size(), nullptr, nullptr); if (resp != RdKafka::ERR_NO_ERROR) { std::cerr << "Failed to produce message: " << RdKafka::err2str(resp) << std::endl; } else { std::cout << "Produced message: " << message_str << std::endl; } producer->flush(1000); delete topic; delete producer; delete conf; return 0; } ``` 这个示例代码使用了 librdkafka 库,需要在编译时链接该库。在 Ubuntu 系统上,可以使用以下命令安装该库: ``` sudo apt-get install librdkafka-dev ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值