转载自:http://blog.csdn.net/ch717828/article/details/50818261

1. 开启Kafka Consumer

首先选择集群的一台机器,打开kafka consumer,接收发送给kafka的消息。我选择的是 10.101.214.71这台机器。

通过以下命令打开 Consumer 。还不了解的可以看  kafka集群环境搭建 http://blog.csdn.net/ch717828/article/details/50748872


  1. /usr/local/kafka_2.11-0.9.0.0/bin/kafka-console-consumer.sh --zookeeper 10.101.214.71:2181,10.101.214.73:2181,10.101.214.74:2181/kafka --from-beginning --topic TestTopic

2. Kafka配置文件修改

因为将要写的 Java代码在本地,而 kafka安装在集群的71,73,74这3台机器上。因此需要对kafka的配置文件做修改,下面以 71的配置为例,73,74的类似。

vim /usr/local/kafka/config/server.properties

主要修改的内容为下面两行


  1. host.name=10.101.214.71
  2. advertised.host.name=10.101.214.71​

3. Java实现Kafka Producer

使用maven 管理依赖包,pom.xml如下


  1. <dependency>
  2. <groupId>org.apache.kafka</groupId>
  3. <artifactId>kafka_2.11</artifactId>
  4. <version>0.8.2.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.kafka</groupId>
  8. <artifactId>kafka-clients</artifactId>
  9. <version>0.8.2.1</version>
  10. </dependency>

log4j.properties 配置如下


  1. log4j.rootLogger=INFO,console
  2. #for package com.demo.kafka, log would be sent to kafka appender.
  3. log4j.logger.com.demo.kafka=DEBUG,kafka
  4. ## appender kafka
  5. #log4j.appender.kafka=kafka.producer.KafkaLog4jAppender
  6. #log4j.appender.kafka.topic=my-replicated-topic5
  7. ## multiple brokers are separated by comma ",".
  8. #log4j.appender.kafka.brokerList=10.101.214.71:9092,10.101.214.73:9092,10.101.214.74:9092
  9. #log4j.appender.kafka.compressionType=none
  10. #log4j.appender.kafka.syncSend=true
  11. #log4j.appender.kafka.layout=org.apache.log4j.PatternLayout
  12. #log4j.appender.kafka.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n
  13. # appender console
  14. log4j.appender.console=org.apache.log4j.ConsoleAppender
  15. log4j.appender.console.target=System.out
  16. log4j.appender.console.layout=org.apache.log4j.PatternLayout
  17. log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n
 Java实现代码如下,只做Demo使用,因此没有 close掉

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Properties;
  4. import kafka.javaapi.producer.Producer;
  5. import kafka.producer.KeyedMessage;
  6. import kafka.producer.ProducerConfig;
  7. public class MyProducer {
  8. private static final String TOPIC = "TestTopic"; //kafka创建的topic
  9. private static final String CONTENT = "This is a single message"; //要发送的内容
  10. private static final String BROKER_LIST = "10.101.214.71:9092,10.101.214.73:9092,10.101.214.74:9092"; //broker的地址和端口
  11. private static final String SERIALIZER_CLASS = "kafka.serializer.StringEncoder"; // 序列化类
  12. public static void main(String[] args) {
  13. Properties props = new Properties();
  14. props.put("serializer.class", SERIALIZER_CLASS);
  15. props.put("metadata.broker.list", BROKER_LIST);
  16. ProducerConfig config = new ProducerConfig(props);
  17. Producer<String, String> producer = new Producer<String, String>(config);
  18. //Send one message.
  19. KeyedMessage<String, String> message =
  20. new KeyedMessage<String, String>(TOPIC, CONTENT);
  21. producer.send(message);
  22. //Send multiple messages.
  23. List<KeyedMessage<String,String>> messages =
  24. new ArrayList<KeyedMessage<String, String>>();
  25. for (int i = 0; i < 5; i++) {
  26. messages.add(new KeyedMessage<String, String>
  27. (TOPIC, "Multiple message at a time. " + i));
  28. }
  29. producer.send(messages);
  30. }
  31. }
运行这段代码,同时观察 Kafka Consumer的输出。可以看到输出信息为


  1. This is a single message
  2. Multiple message at a time. 0
  3. Multiple message at a time. 1
  4. Multiple message at a time. 2
  5. Multiple message at a time. 3
  6. Multiple message at a time. 4

此时完成了 java来向kafka产生消息。

kafka_2.11-0.8.2.1生产者producer的Java实现的更多相关文章

  1. kafka_2.11-0.10.0.1生产者producer的Java实现

    转载自:http://blog.csdn.net/qq_26479655/article/details/52555283 首先导入包 将kafka目录下的libs中的jar包导入 用maven建立 ...

  2. kafka 0.8.2 消息生产者 producer

    package com.hashleaf.kafka; import java.util.Properties; import kafka.javaapi.producer.Producer; imp ...

  3. kafka 0.10.2 消息生产者(producer)

    package cn.xiaojf.kafka.producer; import org.apache.kafka.clients.producer.*; import org.apache.kafk ...

  4. Kafka 0.11.0.0 实现 producer的Exactly-once 语义(官方DEMO)

    <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients&l ...

  5. kafka 0.8.2 消息生产者 KafkaProducer

    package com.hashleaf.kafka; import java.util.Properties; import java.util.concurrent.ExecutorService ...

  6. kafka_2.11-2.0.0_安装部署

    参考博文:kafka 配置文件参数详解 参考博文:Kafka[第一篇]Kafka集群搭建 参考博文:如何为Kafka集群选择合适的Partitions数量 参考博文:Kafka Server.prop ...

  7. 【转】 详解Kafka生产者Producer配置

    粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码:   -----------------------------------------    详解Kafka生产者Produce ...

  8. centos7安装kafka_2.11-1.0.0 新手入门

    系统环境 1.操作系统:64位CentOS Linux release 7.2.1511 (Core) 2.jdk版本:1.8.0_121 3.zookeeper版本:zookeeper-3.4.9. ...

  9. SQLLocalDB 11.0持续报错,这是泥马德什么问题啊!!!

    Windows API 调用 WaitForMultipleObjects 返回了错误代码: 575.Windows 系统错误消息为: {应用程序错误}应用程序无法正常启动(0x%lx).请单击“确定 ...

随机推荐

  1. 在 Andriod/IOS 程序中使用自定义字体

    很早就遇到这个问题,QDAC作者也在这里给出了方案.

  2. kbmMW授权管理解析(The kbmMW Authorization manager explained)

    从kbmMW v.4.40开始,引入了一个新的非常灵活的授权管理器. 它的目的是为开发人员提供为用户定义资源权限的功能,这是一个可选功能,将现有的授权事件驱动方案内置到kbmMW中,使授权开发任务更容 ...

  3. python 常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  4. 分析攻击IP来源地并画出饼图

    此文中的API将台湾列为国家,非本人立场,台湾属于中国,台湾岛生活的人不一定! 上码: #!/usr/bin/python #coding=utf-8 ''' http://ip-api.com/js ...

  5. 内存直读技术DMA

    DMA(Direct Memory Access) DMA(Direct Memory Access)即直接存储器存取,是一种快速传送数据的机制. 工作原理 DMA是指外部设备不通过CPU而直接与系统 ...

  6. 莫烦tensorflow(3)-Variable

    import tensorflow as tf state = tf.Variable(0,name='counter') one = tf.constant(1) new_value = tf.ad ...

  7. 【Python】进程间共享实例

    #练习:进程间共享实例 import time,os import random from multiprocessing import Pool,Value,Lock,Manager from mu ...

  8. Python网络爬虫之requests模块(1)

    引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...

  9. tarfile — Read and write tar archive files

    参考: https://docs.python.org/2/library/tarfile.html http://www.jianshu.com/p/bbad16822eab #解压文件tarfil ...

  10. lecture1-Word2vec实战班-七月在线nlp

    nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集.自带语料库.词性分类库.自带分类分词等功能.强大社区支持.很多简单版wrapper 文本处 ...