pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>bj.zm</groupId>
<artifactId>kafka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>kafka</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.8.2.0</version>
</dependency>
</dependencies>
</project>

KafkaConsumer.java

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import kafka.consumer.Consumer;
import kafka.consumer.ConsumerConfig;
import kafka.consumer.ConsumerIterator;
import kafka.consumer.KafkaStream;
import kafka.javaapi.consumer.ConsumerConnector;

public class KafkaConsumer extends Thread{

private String topic;

public kafkaConsumer(String topic){
super();
this.topic = topic;
}

@Override
public void run() {
ConsumerConnector consumer = createConsumer();
System.out.println("消费者对象:"+consumer);
Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
topicCountMap.put(topic, 1);
Map<String, List<KafkaStream<byte[], byte[]>>> messageStreams = consumer.createMessageStreams(topicCountMap);
KafkaStream<byte[], byte[]> stream = messageStreams.get(topic).get(0);
ConsumerIterator<byte[], byte[]> iterator = stream.iterator();
while(iterator.hasNext()){
String message = new String(iterator.next().message());
System.out.println("消费者数据 "+topic +":"+ message);
}
}

private ConsumerConnector createConsumer() {
Properties properties = new Properties();
// properties.put("zookeeper.connect", "10.202.27.5:2181,10.202.27.6:2181,10.202.27.7:2181/kafka/st");
properties.put("zookeeper.connect", "10.202.36.28:2182,10.202.36.30:2182,10.202.36.29:2182/kafka/st");
properties.put("group.id", "sfst");
return Consumer.createJavaConsumerConnector(new ConsumerConfig(properties));
}

public static void main(String[] args) {
//new kafkaConsumer("EXP_IMG_TO_WQS").start();
//new kafkaConsumer("EXP_IMG_TO_SSS").start();
//new kafkaConsumer("EXP_IMG_TYPE1").start();
new kafkaConsumer("EXP_IMAGE_TOPIC").start();

}
}

KafkaProducer.java

import java.util.Properties;
import java.util.concurrent.TimeUnit;

import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import kafka.serializer.StringEncoder;

public class kafkaProducer extends Thread{

private String topic;

public kafkaProducer(String topic){
super();
this.topic = topic;
}

@Override
public void run() {
Producer producer = createProducer();
int i=0;
while(true){
// producer.send(new KeyedMessage<Integer, String>(topic, "{\"logId\":\"1\",\"waybillId\":\"10376683317\",\"waybillNo\":\"785000213695\",\"sourceZoneCode\":\"755A\",\"destZoneCode\":\"755\",\"oneselfPickupFlg\":\"1\",\"consignorCompName\":\"科技公司\",\"consignorAddr\":\"软件产业基地\",\"consignorPhone\":\"10086\",\"consignorContName\":\"王珂\",\"consignorMobile\":\"8888888\",\"addresseeCompName\":\"寄件公司\",\"addresseeAddr\":\"收件地址\",\"addresseePhone\":\"11111111\",\"addresseeContName\":\"收件联系人\",\"addresseeMobile\":\"55555\",\"meterageWeightQty\":\"10\",\"realWeightQty\":\"10\",\"quantity\":\"1\",\"freeParcelFlg\":\"0\",\"innerParcelFlg\":\"0\",\"versionNo\":\"1\",\"inputTypeCode\":\"2\",\"modifiedEmpCode\":\""+i+"\"}"));
producer.send(new KeyedMessage<Integer, String>(topic, "{\"isImageDto\":\"1\",\"waybillId\":\"10376683317\",\"billCode\":\"785000213695\",\"sourceZoneCode\":\"755A\",\"destZoneCode\":\"755\",\"oneselfPickupFlg\":\"1\",\"consignorCompName\":\"科技公司\",\"consignorAddr\":\"软件产业基地\",\"consignorPhone\":\"10086\",\"consignorContName\":\"王珂\",\"consignorMobile\":\"8888888\",\"addresseeCompName\":\"寄件公司\",\"addresseeAddr\":\"收件地址\",\"addresseePhone\":\"11111111\",\"addresseeContName\":\"收件联系人\",\"addresseeMobile\":\"55555\",\"meterageWeightQty\":\"10\",\"realWeightQty\":\"10\",\"quantity\":\"1\",\"freeParcelFlg\":\"0\",\"innerParcelFlg\":\"0\",\"waybillType\":\"1\",\"inputTypeCode\":\"2\",\"modifiedEmpCode\":\""+i+"\"}"));
System.out.println("==============: " + i);
try {
TimeUnit.SECONDS.sleep(1);
i++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

private Producer createProducer() {
Properties properties = new Properties();
// properties.put("zookeeper.connect", "10.202.27.5:2181,10.202.27.6:2181,10.202.27.7:2181");
// properties.put("metadata.broker.list", "10.202.27.5:9093,10.202.27.6:9093,10.202.27.7:9093");

properties.put("zookeeper.connect", "10.202.36.28:2182,10.202.36.30:2182,10.202.36.29:2182");
properties.put("metadata.broker.list", "10.202.36.29:9093,10.202.36.28:9093,10.202.36.30:9093");
properties.put("serializer.class", StringEncoder.class.getName());

return new Producer<Integer, String>(new ProducerConfig(properties));
}

public static void main(String[] args) {
// new kafkaProducer("EXP_WB_TOPIC").start();
new kafkaProducer("EXP_IMAGE_TOPIC").start();
// new kafkaProducer("EXP_IMG_TO_SSS").start();

}

}

kafka 消费者和生产者测试类的更多相关文章

  1. Kafka入门之生产者消费者测试

    目录: kafka启动脚本以及关闭脚本 1. 同一个生产者同一个Topic,两个相同的消费者相同的Group 2. 同一个生产者同一个Topic,两个消费者不同Group 3. 两个生产者同一个Top ...

  2. centos7单机安装kafka,进行生产者消费者测试

    [转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11364852.html   作者:jstarseven    码字挺辛苦的.....  一.k ...

  3. Kafka集群安装部署、Kafka生产者、Kafka消费者

    Storm上游数据源之Kakfa 目标: 理解Storm消费的数据来源.理解JMS规范.理解Kafka核心组件.掌握Kakfa生产者API.掌握Kafka消费者API.对流式计算的生态环境有深入的了解 ...

  4. Kafka入门之生产者消费者

    一.Kafka安装与使用 ( kafka介绍     ) 1. 下载Kafka 官网 http://kafka.apache.org/    以及各个版本的下载地址 http://archive.ap ...

  5. kafka 服务端消费者和生产者的配置

    在kafka的安装目录下,config目录下有个名字叫做producer.properties的配置文件 #指定kafka节点列表,用于获取metadata,不必全部指定 #需要kafka的服务器地址 ...

  6. Kafka消费者生产者实例

    为了更为直观展示Kafka的消息生产消费的过程,我会从基于Console和基于Application两个方面介绍使用实例.Kafka是一个分布式流处理平台,具体来说有三层含义: 它允许发布和订阅记录流 ...

  7. 二、Kafka基础实战:消费者和生产者实例

    一.Kafka消费者编程模型 1.分区消费模型 分区消费伪代码描述 main() 获取分区的size for index =0 to size create thread(or process) co ...

  8. Kafka 消费者

    应用从Kafka中读取数据需要使用KafkaConsumer订阅主题,然后接收这些主题的消息.在我们深入这些API之前,先来看下几个比较重要的概念. Kafka消费者相关的概念 消费者与消费组 假设这 ...

  9. Kafka权威指南 读书笔记之(四)Kafka 消费者一一从 Kafka读取数据

    KafkaConsumer概念 消费者和消费者群组 Kafka 消费者从属于消费者群组.一个群组里的消费者订阅的是同一个主题,每个消费者接收主题一部分分区的消息. 往群组里增加消费者是横向伸缩消费能力 ...

随机推荐

  1. MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法

    在MySQL中,写SQL语句的时候 ,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能 ...

  2. 常常忘记但是很重要的sql语句

    一.基础1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份 ...

  3. VB/C#获取资源Rources

    VB.Net: My.Resources.ResourceManager.GetObject("data") C# Properties.Resources.文件名

  4. Ubuntu16.04 LTS上安装Go1.10

    原因 Ubuntu资源库上默认使用的是Go1.6.2版本,给最新版本代码编译带来了不少问题.本文就记录下在Ubuntu下直接安装Go最新版1.10的步骤. 准备工作 1.卸载已有版本 # 卸载已经安装 ...

  5. 深入理解java虚拟机---java内存区域与内存溢出异常---2堆栈溢出

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...

  6. Invoke 和 BeginInvoke 的区别

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dot ...

  7. vue-video监听touch事件

    vue-video是基于 Vue 的简洁 HTML5 视频播放器组件,但是并没有监听touch事件,也就是说在移动端按键无效. 本文讲述如何改写其vue组件,使其兼容移动端.只需要在其原有的mouse ...

  8. 在Eclipse中指定JDK

    1.Windows下的Eclipse中的eclipse.ini -startup plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540 ...

  9. Android 如何监听一个线程的开始和结束

    方法一:轮训 比如主线程要等子线程在得到变量“val”值的时候开始用“val”的值来进行工作,使用轮训的方法如下: public class SubThread extends Thread{ pri ...

  10. Attack Top Chunk之 bcloud

    前言 这是 bctf 2016 的题,链接 https://github.com/ctfs/write-ups-2016/tree/master/bctf-2016/exploit/bcloud-20 ...