测试示例:
实时监控某一文件夹,若文件夹中含有.txt的文件,则将文件中的内容放进topic,然后将该文件删除,进行数据的生产
生产者类
import java.util.Properties
import kafka.producer.{KeyedMessage, Producer, ProducerConfig}
import scala.io.Source
import scala.reflect.io.Path
class KafkaProducerScala(brokerList:String,topic:String) extends Runnable{
private val BROKER_LIST = brokerList //cdh1:9092,cdh2:9092,cdh5:9092
private val TARGET_TOPIC = topic //topic_test_1
private val DIR = "/home/SP-in-BD/zhengss/scripts/data/test"
/**
* 1、配置属性
* metadata.broker.list : kafka集群的broker,只需指定2个即可
* serializer.class : 如何序列化发送消息
* request.required.acks : 1代表需要broker接收到消息后acknowledgment,默认是0
* producer.type : 默认就是同步sync
*/
private val props = new Properties()
props.put("metadata.broker.list",this.BROKER_LIST)
props.put("serializer.class","kafka.serializer.StringEncoder")
props.put("request.required.acks","1")
props.put("producer.type","async")
/**
* 2、创建Producer
*/
private val config = new ProducerConfig(this.props)
private val producer = new Producer[String,String](this.config)
/**
* 3、产生并发送消息
* 搜索目录dir(/home/SP-in-BD/zhengss/scripts/data/test)下的所