生产者

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. A、B、C、D四个字母,能组成多少个互不相同且无重复三位组合

    package 第五天的作业;/* * A.B.C.D四个字母,能组成多少个互不相同且无重复三位组合 */public class Demo14 { public static void main(S ...

  2. MyEclipse2017修改Web Context Root

    1,复制一个已经存在的项目,并修改项目名 2,选中项目右键选择properities,打开. 但是这里的web context root无法修改 3,删除web显示properties的所有属性,输入 ...

  3. oracle char 多位,引发的问题

    我在表字有一字段type 类型为char(1),一开始用的还好,后来,char(1)不够用了,于是将char(1),变为char(2). 我做了一个字典表,来对应type,可是,总是查不到数据,最后, ...

  4. 用字符串对列表赋值,一个字符串对应一个列表元素,eg: my @escaped = "asteriskasterisk hash access unpack_func";

    my @escaped = "asteriskasterisk hash access unpack_func";     # 是一个元素的赋值 25 unless( $escap ...

  5. 机器翻译注意力机制及其PyTorch实现

    前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译 Effective Approaches to Attention-based Neural Machine Translat ...

  6. C++中的初始化列表

    C++11扩大了列表初始化的适用范围,使其可以用于所有内置类型和用户定义的类型(即类对象). 1.当列表初始化用于内置类型的变量时,这种初始化形式有一个重要的特点:如果我们使用列表初始化且初始化值存在 ...

  7. 在linux服务器上搭建Struts2项目运行环境

    服务器上工作: 首先要先装java https://www.cnblogs.com/lamp01/p/8932740.html 然后装好tomcat https://www.cnblogs.com/y ...

  8. 添物不花钱学javaEE--CSS

    CSS是什么? CSS: Cascading Style Sheets CSS官方网址: https://www.w3.org/TR/2011/REC-CSS2-20110607/ 其实仔细研究这个就 ...

  9. hdu 4325

    #include<stdio.h>//数据弱线段树延迟更新水过 #define N 100100 struct node { int x,y,yanchi,num; }a[N*4]; vo ...

  10. htmlspecialschars与htmlentities的区别

    根据php手册,htmlentities与htmlspecialchars功能几乎是一模一样.唯一的差别就是,对于无效的代码单元序列(通俗讲就是不认识的编码)是否进行编码.htmlentities会进 ...