kafka 实例
来源:互联网 发布:电脑看书软件下载 编辑:程序博客网 时间:2024/06/11 11:02
1、produce
import java.util.{Date, Properties}import kafka.producer.{KeyedMessage, Producer, ProducerConfig}import scala.util.Randomobject ScalaProducerExample extends App { val events = args(0).toInt val topic = args(1) val brokers = args(2) val rnd = new Random() val props = new Properties() props.put("metadata.broker.list", brokers) props.put("serializer.class", "kafka.serializer.StringEncoder") props.put("producer.type", "async") val config = new ProducerConfig(props) val producer = new Producer[String, String](config) val t = System.currentTimeMillis() for (nEvents <- Range(0, events)) { val runtime = new Date().getTime(); val ip = "192.168.210.16" + rnd.nextInt(255); val msg = runtime + "," + nEvents + ",www.example.com," + ip; val data = new KeyedMessage[String, String](topic, ip, msg); producer.send(data); } System.out.println("sent per second: " + events * 1000 / (System.currentTimeMillis() - t)); producer.close();}2、消费者
import java.util.Propertiesimport java.util.concurrent._import kafka.utils.Loggingimport kafka.consumer.{Consumer, ConsumerConfig, KafkaStream}class ScalaConsumerExample(val zookeeper: String, val groupId: String, val topic: String, val delay: Long) extends Logging { val config = createConsumerConfig(zookeeper, groupId) val consumer = Consumer.create(config) var executor: ExecutorService = null def shutdown() = { if (consumer != null) consumer.shutdown(); if (executor != null) executor.shutdown(); } def createConsumerConfig(zookeeper: String, groupId: String): ConsumerConfig = { val props = new Properties() props.put("zookeeper.connect", zookeeper); props.put("group.id", groupId); props.put("auto.offset.reset", "largest"); props.put("zookeeper.session.timeout.ms", "400"); props.put("zookeeper.sync.time.ms", "200"); props.put("auto.commit.interval.ms", "1000"); val config = new ConsumerConfig(props) config } def run(numThreads: Int) = { val topicCountMap = Map(topic -> numThreads) val consumerMap = consumer.createMessageStreams(topicCountMap); val streams = consumerMap.get(topic).get; executor = Executors.newFixedThreadPool(numThreads); var threadNumber = 0; for (stream <- streams) { executor.submit(new ScalaConsumerTest(stream, threadNumber, delay)) threadNumber += 1 } }}object ScalaConsumerExample extends App { val example = new ScalaConsumerExample(args(0), args(1), args(2),args(4).toLong) example.run(args(3).toInt)}class ScalaConsumerTest(val stream: KafkaStream[Array[Byte], Array[Byte]], val threadNumber: Int, val delay: Long) extends Logging with Runnable { def run { val it = stream.iterator() while (it.hasNext()) { val msg = new String(it.next().message()); System.out.println(System.currentTimeMillis() + ",Thread " + threadNumber + ": " + msg); } System.out.println("Shutting down Thread: " + threadNumber); }}3、运行方式
(1)使用maven打成jar包
1)消费者
java -cp /opt/app/kafka_2.10-0.8.2.1/test/KafkaDemo-1.0-SNAPSHOT.jar:/opt/app/kafka_2.10-0.8.2.1/libs/kafka_2.10-0.8.2.1.jar:/opt/app/scala-2.10.5/lib/scala-library.jar:/opt/app/kafka_2.10-0.8.2.1/libs/log4j-1.2.16.jar:/opt/app/kafka_2.10-0.8.2.1/libs/kafka-clients-0.8.2.1.jar:/opt/app/kafka_2.10-0.8.2.1/libs/zkclient-0.3.jar:/opt/app/kafka_2.10-0.8.2.1/libs/metrics-core-2.2.0.jar:/opt/app/kafka_2.10-0.8.2.1/libs/slf4j-log4j12-1.6.1.jar:/opt/app/kafka_2.10-0.8.2.1/libs/slf4j-api-1.7.6.jar:/opt/app/kafka_2.10-0.8.2.1/libs/zookeeper-3.4.6.jar com.colobu.kafka.ScalaProducerExample 1 mykafka1 192.168.210.16:9092
2)生产者
java -cp /opt/app/kafka_2.10-0.8.2.1/test/KafkaDemo-1.0-SNAPSHOT.jar:/opt/app/kafka_2.10-0.8.2.1/libs/kafka_2.10-0.8.2.1.jar:/opt/app/scala-2.10.5/lib/scala-library.jar:/opt/app/kafka_2.10-0.8.2.1/libs/log4j-1.2.16.jar:/opt/app/kafka_2.10-0.8.2.1/libs/kafka-clients-0.8.2.1.jar:/opt/app/kafka_2.10-0.8.2.1/libs/zkclient-0.3.jar:/opt/app/kafka_2.10-0.8.2.1/libs/metrics-core-2.2.0.jar:/opt/app/kafka_2.10-0.8.2.1/libs/slf4j-log4j12-1.6.1.jar:/opt/app/kafka_2.10-0.8.2.1/libs/slf4j-api-1.7.6.jar:/opt/app/kafka_2.10-0.8.2.1/libs/zookeeper-3.4.6.jar com.colobu.kafka.ScalaConsumerExample 192.168.210.16:2181 group1 mykafka1 1 0
一定要加载第三方包,否则报类找不到错误
- kafka 实例
- Kafka 实例
- 【Apache Kafka】代码实例
- 【Apache Kafka】代码实例
- Kafka编程实例
- kafka Java实例
- Kafka Java Producer实例
- Kafka入门实例
- kafka low levle实例
- Spark+kafka+SparkStreaming实例
- kafka spring 实例
- flume-kafka 实例 详细
- kafka集群实例
- kafka 自定义分区实例
- spring整合kafka实例
- Kafka 生产消费实例
- Kafka入门实例
- 二、kafka项目实例
- 注解事务不起作用
- Spring MVC拦截器+注解方式实现防止表单重复提交
- 实验---泛型
- Python里统计一个字符串中子字符串的个数
- 混合类型数据的相异性
- kafka 实例
- 安卓开发高德地图(1)—— 地图的显示
- Mysql字符串截取函数SUBSTRING的用法说明
- jquery radio checked 是否选中
- OTG驱动分析(二)
- constructor initializer list
- 保留小数问题
- IOS安全–了解Mach-o文件结构
- python实例