Kafka Demo 模拟json信息

Kafka Demo 模拟json信息

基于

  • scala 2.11.8
  • kafka 0.10.0.1
import java.util.{Properties, Random, UUID}
import kafka.producer.{KeyedMessage, Producer, ProducerConfig}
import org.codehaus.jettison.json.JSONObject

/*
 * Created by hao
 * Create a producer to send json message
 */
object kafkapro {
  private val random = new Random()
  private var pointer = -1
  private val city_no = Array(
    "371")
  private val group_no = Array("1")

  def dept_no() : Double = {
    random.nextInt(10)
  }
  def fila_no() : Int={
    random.nextInt(30)
  }
  def line_no(): Int={
    random.nextInt(1000)
  }


  def getcityno() : String = {
    pointer = pointer + 1
    if(pointer >= city_no.length) {
      pointer = 0
      city_no(pointer)
    } else {
      city_no(pointer)
    }
  }

  def main(args: Array[String]): Unit = {
    val topic = "kafkademo"
    val brokers = "hadoop-2:9092,hadoop-3:9092,hadoop-5:9092"
    val props = new Properties()
    props.put("metadata.broker.list", brokers)
    props.put("serializer.class", "kafka.serializer.StringEncoder")

    val kafkaConfig = new ProducerConfig(props)
    val producer = new Producer[String, String](kafkaConfig)

    while(true) {
      // prepare event data
      val event = new JSONObject()
      event
        .put("uid", UUID.randomUUID())//随机生成用户id
        .put("event_time", System.currentTimeMillis.toString) //记录时间发生时间
        .put("city_no", getcityno) //设备类型
        .put("line_no", line_no) //点击次数
        .put("dept_no",dept_no)
        .put("group_no",group_no)
        .put("fila_no",fila_no)


      // produce event message
      producer.send(new KeyedMessage[String, String](topic, event.toString))
      println("Message sent: " + event)

      Thread.sleep(200)
    }
  }
}

猜你喜欢

转载自blog.csdn.net/H_haow/article/details/85212563
今日推荐