03-eclipse创建maven项目进行Kafka Producer的测试

前面已经部署好了Kafka集群并且在利用kafka集群提供的脚本测试通过,下面要进入Java开发环境搭建。

一、环境描述

              1server2008 eclipse kepler 

              2、本机建立了虚拟机系统:  redhat 6.4    ip192.168.5.130,192.168.5.132,192.168.5.133 

              3、在三台虚拟机上部署了zookeeper 分布式192.168.5.130:2181,192.168.5.132:2181,192.168.5.133:2181

              4、在虚拟机上部署了kafka broker集群:192.168.5.130:9092,192.168.5.132:9092,192.5.133:9092 

            broker id 分别为 123

二、目标

      1、在eclipse上建立工程,导入依赖库,可以正常编译, producterconsumer 都可以实现
       2
、可以在eclipse 调试程序,  本机 ----连接虚拟机的 zookeeper集群和 kafkabroker集群

三、搭建过程

      整个过程其实走了一些弯路,网络上一些内容因为版本的问题,可能会用 maven方式,实际上现在也可以直接用常用的java工程开发方式,看各自喜欢。

另外,最新的api开发更简单而且据说效率更高,所以。。。。摸索都是泪。希望本篇可以让大家少走弯路。

       1 maven方式建立工程

         ----------具体安装maven和配置的步骤见maven实践

         eclipse集成maven已经实现后,创建一个maven工程:  打开eclipseFile->new->other  选中maven project

   然后,修改pom.xml,在文件中增加如下依赖

03-eclipse创建maven项目进行Kafka Producer的测试_第1张图片

  

完成后,保存。保存会触发maven工程自己会从网络上下载依赖库,出现如下界面,就说明工程正在自动下载依赖库。

 编写producter代码:

public class MyProducer {

          private static finalString TOPIC = "test"; //kafka创建的topic 

             private staticfinal String CONTENT = "This is a single message"; //要发送的内容 

             private staticfinal String BROKER_LIST ="192.168.5.130:9092,192.168.5.132:9092,192.168.5.133:9092"; //broker的地址和端口 

             private staticfinal String SERIALIZER_CLASS = "kafka.serializer.StringEncoder"; // 序列化类 

          

             public static voidmain(String[] args) { 

                 Propertiesprops = new Properties();   

                props.put("serializer.class", SERIALIZER_CLASS); 

                props.put("metadata.broker.list", BROKER_LIST); 

          

          

                 ProducerConfigconfig = new ProducerConfig(props); 

                 Producer producer= new Producer(config); 

          

                 //Send onemessage. 

                KeyedMessage message = 

                         newKeyedMessage(TOPIC, CONTENT); 

                 producer.send(message); 

          

                 //Sendmultiple messages. 

                List> messages = 

                         newArrayList>(); 

                 for (int i =0; i < 5; i++) { 

                    messages.add(new KeyedMessage 

                            (TOPIC, "Multiple message at a time. " + i)); 

                 } 

                producer.send(messages);

                producer.close();

          

             } 

 

}

 然后确保没有错误后,在需要测试的类上右键-run as java application

正常情况下,就可以连接上kafkaproducter向消息队列推送消息,consumer可以从消息队列接受消息。

03-eclipse创建maven项目进行Kafka Producer的测试_第2张图片

在虚拟机上开一个consumer接受消息,

[hadoop@hslave1kafka_2.10-0.9.0.1]$ bin/kafka-console-consumer.sh --zookeeperhmaster:2181,hslave1:2181,hslave2:2181 --from-beginning --topic test执行结果如下:

 

到此结束,window开发环境与集群通信没有问题,在此期间会遇到很多问题,本人已经解决,所以赶快去测试一通吧。实践是出真理。

你可能感兴趣的:(kafka)