生产者

import java.util.Properties;

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) {

this.topic = topic;

}





@Override

public void run() {

Producer<Integer, String> producer = createProducer();

for(int i =1 ;i<=10;i++){

String message = "message"+i; 

producer.send(new KeyedMessage<Integer, String>(topic, message));

System.out.println("生产者生成---------->"+message);



try {

//睡眠 1S

sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}





public Producer createProducer() {



Properties properties = new Properties();

properties.setProperty("zookeeper.connect", "192.168.80.20:2181,192.168.80.21:2181,192.168.80.22:2181");

// properties.setProperty("zookeeper.connect", "cloud1:2181,cloud2:2181,cloud3:2181");

properties.setProperty("serializer.class", StringEncoder.class.getName());

//properties.setProperty("serializer.class", "kafka.serializer.StringEncoder");

properties.setProperty("metadata.broker.list", "192.168.80.20:9092");

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

}

public static void main(String[] args) {

new KafkaProducer("test").start();

}

}



消费者

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 KafkaComsumer extends Thread {

private String topic;



public KafkaComsumer(String topic) {

this.topic = topic;

}





@Override

public void run() {

ConsumerConnector consumer = createConsumer();

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[]> kafkaStream = messageStreams.get(topic).get(0);

ConsumerIterator<byte[], byte[]> iterator = kafkaStream.iterator();



while(iterator.hasNext()){

String message = new String(iterator.next().message());

System.out.println("接受到的信息------------》"+message);



}





}





public ConsumerConnector createConsumer() {

Properties properties = new Properties();

properties.setProperty("zookeeper.connect", "192.168.80.20:2181,192.168.80.21:2181,192.168.80.22:2181");

properties.setProperty("group.id", "group1");

return Consumer.createJavaConsumerConnector(new ConsumerConfig(properties));

}

public static void main(String[] args) {

new KafkaComsumer("test").start();

}

}

kafka 生产者消费者 api接口的更多相关文章

  1. Python 使用python-kafka类库开发kafka生产者&消费者&客户端

    使用python-kafka类库开发kafka生产者&消费者&客户端   By: 授客 QQ:1033553122       1.测试环境 python 3.4 zookeeper- ...

  2. java kafka 生产者消费者demo

    一.修改kafka   server.porperties的ip是你本机的ip listeners=PLAINTEXT://192.168.111.130:9092 二.生产者的例子 import o ...

  3. kafka集群搭建和使用Java写kafka生产者消费者

    1 kafka集群搭建 1.zookeeper集群  搭建在110, 111,112 2.kafka使用3个节点110, 111,112 修改配置文件config/server.properties ...

  4. kafka生产者消费者

    import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.Co ...

  5. kafka生产者 消费者

    publisher.php <?php $rk = new RdKafka\Producer(); $rk->addBrokers("192.168.33.50"); ...

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

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

  7. kafka-python开发kafka生产者和消费者

    1.安装kafka-python 执行命令 pip install kafka-python kafka-python        1.4.6 2.编写python kafka 生产者消费者代码 # ...

  8. Kafka生产者-向Kafka中写入数据

    (1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复.延迟以及吞吐量的要求.不同场景对Kafka生产者的API使用和配置会有直接的影响. 例子1:信用卡事务处理系统,不允 ...

  9. 4.kafka生产者---向Kafka中写入数据(转)

    转:  https://www.cnblogs.com/sodawoods-blogs/p/8969513.html (1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复 ...

随机推荐

  1. [Python3网络爬虫开发实战] 1.9.3-Scrapyd-Client的安装

    在将Scrapy代码部署到远程Scrapyd的时候,第一步就是要将代码打包为EGG文件,其次需要将EGG文件上传到远程主机.这个过程如果用程序来实现,也是完全可以的,但是我们并不需要做这些工作,因为S ...

  2. win10下硬盘安装CentOS7

    安装环境: 1.系统:Windows 10 2.硬盘:SSD(已装好Win 10) + HHD(用来装CentOS 7) 准备工作: 1.DiskGenius(分区工具):用来给硬盘做分区: 2.系统 ...

  3. Codeforces Beta Round #19D(Points)线段树

    D. Points time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  4. uva 10596 - Morning Walk

    Problem H Morning Walk Time Limit 3 Seconds Kamal is a Motashota guy. He has got a new job in Chitta ...

  5. 谷歌浏览器添加Bing搜索引擎:

    谷歌浏览器添加Bing搜索引擎:   https://www.bing.com/search?q=%s&pc=MOZI&form=MOZLBR  

  6. js获取指定字符前/后的字符串简单实例

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Android BGABadgeView:BGABadgeImageView以及BGABadgeRelativeLayout(4)

     Android BGABadgeView:BGABadgeImageView以及BGABadgeRelativeLayout(4) 在附录文章5,6,7的基础上,写一个小例子说明BGABadge ...

  8. [Zabbix] 如何实现邮件报警通知以及免费短信报警通知

    版权声明:本文为博主原创文章,未经博主允许不得转载.  前提条件: (1) zabbix服务器端已经成功安装并且运行. (2) zabbix客户端已经成功建立并且运行. 1 下载并且安装msmtp软件 ...

  9. 转盘抽奖 canvas & 抽奖 H5 源码

    转盘抽奖 canvas https://github.com/givebest/wechat-turntalbe-canvas https://blog.givebest.cn/GB-canvas-t ...

  10. 【转】Java中的IO操作

    在使用io操作之前,先看一下java中的文件类File如何使用.File包括文件和目录,对文件和目录的操作是新建目录mkdir,新建文件createNewFile,删除文件和目录delete,以及其他 ...