kafka 学习笔记(二)之Java Producer客户端

原创 2015年07月10日 08:24:07

软件神马的装好了,该写代码了,首先学习Producer。

Tutorial的代码只能用来玩,我们真正要做的是用Kafka嵌入到我们自己的程序中。因此用java客户端创建自己的consumer和producer才是正经事。下面我们来看正经事!

先来看看producer的Java客户端,这里介绍如何配置以及新建一个producer。并用自带的命令行console来测试新建的producer。

这里有代码,我们用这个代码来demo https://github.com/gwenshap/kafka-examples


代码在github上,因此我们要下载下来

git clone https://github.com/gwenshap/kafka-examples

我放在workspace 文件夹里,cd进入SimpleCounter文件夹,使用Maven

#mvn install

显示success

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

ls 会发现多出一个叫target的文件夹,OK.成功了


查看创建的topic first

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


开consumer的时候发生了错误:

WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

OMG!这是什么鬼?!

哦,原来是没开zookeeper,好,这就开

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


先开自带的consumer console :

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test1 (test1是我以前创建的一个topic)

另外开一个窗口,再开producer:

./run_params.sh localhost:9092 test1 old sync 500 10  (sync是说同步的,producer写一个,consumer就出一个)

看consumer 窗口:


这几个数就一个一个的出现了。下面是运行总时间。代码里是0.5秒数一个数,加上一些overhead的delay,5392ms,正常


不错,挺好玩。我们再来玩一个不同步的 (producer写完,consumer一次性打出来,不是一个一个出现的)

 ./run_params.sh localhost:9092 test1 old async 500 10


可以看到,这个速度快了,因为是batch的,不用一个消息一个消息的等,而是producer发布10个消息之后一起传出来的。


counter类型参数改成new也是一个样的。

Procuder 的代码写完了,下一篇即将写consumer的。

相关文章推荐

zookeeper 大量连接断开重连原因排查

问题现象 最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考: http://blog.csdn.net/hengyunabc/artic...

Kafka 学习笔记(三)之Java Consumer客户端

写了producer,这篇我们来看看consumer。

kafka 学习笔记(四)之Python客户端

今天看看Python客户端。 代码在github上,和以前一样,我们用github上写好的代码进行测试 https://github.com/mumrah/kafka-python pip inst...

Java学习笔记(二)-------客户端一对多(TCP)多人聊天小程序

实现原理:客户端之间实现信息共享,需要中间服务器端进行信息转发。设置一个ArrayList,存储客户端列表,服务器每收到消息,就去遍历数组中的Socket并将消息转发。服务器端每连接一个客户端,就产生...

WebServices学习笔记(二)用java编写WebService的客户端代码

一、

Kafka 学习笔记(九)producer 和 consumer分别在两个虚拟机上

这个才是Kafka真正要实现的功能嘛,有人生产消息,有人订阅消息然后生产者发送给订阅者,这个逻辑才对。我们先配置有traffic消息的虚拟机。我是通信的,Kafka我用来监听traffic,所以消息是...

Kafka 学习笔记(八)之producer读取file

要想让Kafka用到实际中,就需要学会让Kafka从文件中读取内容,发送到topic里,以供consumer读取。我们以前的几篇,自己产生data的,不是从file中读的。 之前先下载好scp,sc...

java学习笔记之webservice(三)--使用wsimport命令生成客户端接口

》》接上一篇        在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService...
  • BeauXie
  • BeauXie
  • 2016年10月20日 11:38
  • 1709

<JAVA>学习笔记10>——多个客户端连接服务器

上篇博客降到一个客户端与服务器之间的通信,本篇简单介绍多个客户端同时与服务器进行通信的情况。...

MongoDB入门学习笔记之mongo shell和java客户端

MongoDB提供Shell、Python、Java、Node.js、C++、C#等实现方式。本文介绍使用Shell和Java两种方式实现MongoDB的CRUD操作。首先需要导入数据,从官网下载测试...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kafka 学习笔记(二)之Java Producer客户端
举报原因:
原因补充:

(最多只允许输入30个字)