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).请单击“确定 ...
 
随机推荐
- django面试二
			
33. django的缓存能使用redis吗?如果可以的话,如何配置? #1.安装 pip install django-redis#2.在stting中配置CACHES,可以设置多个缓存,根据名字使 ...
 - 下载从网页里面提取出来的图片(将url指向的图片下载并保存、从命名)
			
import os #创建文件夹 from urllib import request #下载图片 if not os.path.exists('文件夹名字'): #创建文件夹名字 os.mkdir( ...
 - http头之keep-alive
			
1.什么是keep-alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HT ...
 - 在SELECT的时候,加入一列固定值
			
SELECT * FROM (select id id, si_code code, si_sharetype sharetype, si_name name, si_organid organid, ...
 - 河工大玲珑校赛重现の rqy的键盘
			
题目传送门:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1263 1263: rqy的键盘 时间限制: 1 秒 内存限制: 128 ...
 - ubuntu ssh 与 Samba安装
			
ssh 安装:sudo apt-get install openssh-server 确认sshserver是否启动:ps -aux | grep ssh(/etc/init.d/ssh start, ...
 - 【转载】    996是没前途的!996.ICU来了,回忆我对996的态度是如何从支持变成了怀疑!
			
原文地址: https://www.meiqiantu.com/20138.html --------------------------------------------------------- ...
 - Nginx配置https的wordpress站点,wp-content目录下资源404解决方案
			
wordpress 下配置 ssl证书, server { listen ; server_name demo.example.com; ssl on; root /data/; ssl_certif ...
 - ss server端配置
			
关于ss server的配置,可以参考一个网址 关于服务器的购买可以上VIRMACH购买 和本地安装ss类似,首先安装ss,pip install shadowsocks 配置服务器参数,vim /e ...
 - FileNotFoundError: [Errno 2] No such file or directory的解决方法
			
1.获取当前文件所在路径 basedir = os.path.dirname(__file__) print("basedir:" + basedir) 2.将路径进行拼接 upl ...