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. SpringBoot+Mybatis+Generator 逆向工程使用(二)

    Mybatis-Genarator 逆向工程使用 个人开发环境 java环境:Jdk1.8.0_60 编译器:IntelliJ IDEA 2017.1.4 mysql驱动:mysql-connecto ...

  2. Vue 基本指令和html常用标签结合使用综合案例(含代码)

    最近项目中要开发一个OA审批:里边涉及到流程跳转(流程较多),具体方案有:直接下一步,选择参与人或者选择某一个流程之后再选择参与人: 我们前端是APiCloud开发,这里我主要使用Vue来实现,把实现 ...

  3. BZOJ1856: [Scoi2010]字符串(组合数)

    题意 题目链接 Sol \(30 \%\)dp: \(f[i][j]\)表示放了\(i\)个\(1\)和\(j\)个\(0\)的不合法方案 f[0][0] = 1; cin >> N &g ...

  4. HTML学习笔记《一》 ---- HTML基本认识

    HTML 基本认识 一.简介 1.HTML是超文本标记语言,标准通用标记语言下的一个应用,解释性语言. 2.“超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 3.超文本标记语言的 ...

  5. nodejs学习 之 安装

    1. 官网找最新适合自己电脑的版本  下载  https://nodejs.org/en/download/ 2.我的是win7 x64选择了msi的安装包,安装过程修改安装的目标目录,最好不要放在c ...

  6. 一起来学习android自定义控件—边缘凹凸的View

    1前言 最近做项目的时候遇到一个卡劵的效果,由于自己觉得用图片来做的话可以会出现适配效果不好,再加上自己自定义view方面的知识比较薄弱,所以想试试用自定义View来实现.但是由于自己知识点薄弱,一开 ...

  7. Postman Postman接口测试工具使用简介

    Postman接口测试工具使用简介 by:授客 QQ:1033553122 本文主要是对Postman这个接口测试工具的使用做个简单的介绍,仅供参考. 插件安装 1)下载并安装chrome浏览器 2) ...

  8. Listview点击已读使用getBadgeView标示

    重:每个ListItem是属于ListItem自己的,不能够放到ViewHolder中,而是数据源每项的. @Override public View getView(int position, Vi ...

  9. request对象方法

    1.html <html> <head> <meta http-equiv="Content-Type" content="text/htm ...

  10. mysql 安装版

    安装 1.MySQL的安装类型选择: 在“Choose Setup Type”对话框有“Typical”默认安装类型:“complete"完全安装类型:Custom自定义安装类型. 我们选择 ...