kafka_2.11-0.8.2.1生产者producer的Java实现
转载自: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
- /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
主要修改的内容为下面两行
- host.name=10.101.214.71
- advertised.host.name=10.101.214.71
3. Java实现Kafka Producer
使用maven 管理依赖包,pom.xml如下
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka_2.11</artifactId>
- <version>0.8.2.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka-clients</artifactId>
- <version>0.8.2.1</version>
- </dependency>
log4j.properties 配置如下
- log4j.rootLogger=INFO,console
- #for package com.demo.kafka, log would be sent to kafka appender.
- log4j.logger.com.demo.kafka=DEBUG,kafka
- ## appender kafka
- #log4j.appender.kafka=kafka.producer.KafkaLog4jAppender
- #log4j.appender.kafka.topic=my-replicated-topic5
- ## multiple brokers are separated by comma ",".
- #log4j.appender.kafka.brokerList=10.101.214.71:9092,10.101.214.73:9092,10.101.214.74:9092
- #log4j.appender.kafka.compressionType=none
- #log4j.appender.kafka.syncSend=true
- #log4j.appender.kafka.layout=org.apache.log4j.PatternLayout
- #log4j.appender.kafka.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n
- # appender console
- log4j.appender.console=org.apache.log4j.ConsoleAppender
- log4j.appender.console.target=System.out
- log4j.appender.console.layout=org.apache.log4j.PatternLayout
- log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Properties;
- import kafka.javaapi.producer.Producer;
- import kafka.producer.KeyedMessage;
- import kafka.producer.ProducerConfig;
- public class MyProducer {
- private static final String TOPIC = "TestTopic"; //kafka创建的topic
- private static final String CONTENT = "This is a single message"; //要发送的内容
- private static final String BROKER_LIST = "10.101.214.71:9092,10.101.214.73:9092,10.101.214.74:9092"; //broker的地址和端口
- private static final String SERIALIZER_CLASS = "kafka.serializer.StringEncoder"; // 序列化类
- public static void main(String[] args) {
- Properties props = new Properties();
- props.put("serializer.class", SERIALIZER_CLASS);
- props.put("metadata.broker.list", BROKER_LIST);
- ProducerConfig config = new ProducerConfig(props);
- Producer<String, String> producer = new Producer<String, String>(config);
- //Send one message.
- KeyedMessage<String, String> message =
- new KeyedMessage<String, String>(TOPIC, CONTENT);
- producer.send(message);
- //Send multiple messages.
- List<KeyedMessage<String,String>> messages =
- new ArrayList<KeyedMessage<String, String>>();
- for (int i = 0; i < 5; i++) {
- messages.add(new KeyedMessage<String, String>
- (TOPIC, "Multiple message at a time. " + i));
- }
- producer.send(messages);
- }
- }
- This is a single message
- Multiple message at a time. 0
- Multiple message at a time. 1
- Multiple message at a time. 2
- Multiple message at a time. 3
- Multiple message at a time. 4
此时完成了 java来向kafka产生消息。
kafka_2.11-0.8.2.1生产者producer的Java实现的更多相关文章
- kafka_2.11-0.10.0.1生产者producer的Java实现
转载自:http://blog.csdn.net/qq_26479655/article/details/52555283 首先导入包 将kafka目录下的libs中的jar包导入 用maven建立 ...
- kafka 0.8.2 消息生产者 producer
package com.hashleaf.kafka; import java.util.Properties; import kafka.javaapi.producer.Producer; imp ...
- kafka 0.10.2 消息生产者(producer)
package cn.xiaojf.kafka.producer; import org.apache.kafka.clients.producer.*; import org.apache.kafk ...
- Kafka 0.11.0.0 实现 producer的Exactly-once 语义(官方DEMO)
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients&l ...
- kafka 0.8.2 消息生产者 KafkaProducer
package com.hashleaf.kafka; import java.util.Properties; import java.util.concurrent.ExecutorService ...
- kafka_2.11-2.0.0_安装部署
参考博文:kafka 配置文件参数详解 参考博文:Kafka[第一篇]Kafka集群搭建 参考博文:如何为Kafka集群选择合适的Partitions数量 参考博文:Kafka Server.prop ...
- 【转】 详解Kafka生产者Producer配置
粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码: ----------------------------------------- 详解Kafka生产者Produce ...
- 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. ...
- SQLLocalDB 11.0持续报错,这是泥马德什么问题啊!!!
Windows API 调用 WaitForMultipleObjects 返回了错误代码: 575.Windows 系统错误消息为: {应用程序错误}应用程序无法正常启动(0x%lx).请单击“确定 ...
随机推荐
- python day02 作业答案
1. (1).false (2).false 2. (1).8 (2).4 3. (1).6 (2).3 (3).false (4).3 (5).true (6).true (7) ...
- MySQL笔记(1)
数据库和 SQL 概念 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统 等众多领域 ...
- ss-libev控制脚本
适用于:shadowsocks-libev-3.0.3 操作系统:CentOS6.8 #!/bin/sh SHADOWSOCKS_SERVER="/usr/local/shadowsocks ...
- mac下python安装MySQLdb模块
参考:http://blog.csdn.net/yelyyely/article/details/41114449 1.调整到anaconda下的python 2.安装有关程序 brew instal ...
- Excel导入CSV文件中文乱码
参考: iconv -f UTF8 -t GB18030 a.csv >b.csv 或iconv -f UTF-8 -t GB18030 a.csv >b.csv
- 获取列表中的最大的N项和最小的N项
获取列表中的最大的N项和最小的N项 #!/sur/bin/env python # -*- coding:utf-8 -*- # author:zengsf #time:2018/10/31 impo ...
- [LeetCode&Python] Problem 860. Lemonade Change
At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you, and ...
- C#读取文件夹下所有指定类型,并返回相应类型数据
C#读取文件夹下所有文件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心 ...
- 关于js的面相对象
http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html
- [洛谷P1417 烹调方案]贪心+dp
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3211Dream City Time Limit: 1 Second ...