Kafka-consumer

这个博客示例展示了如何在Scala中使用Apache Kafka的KafkaProducer发送消息到指定主题。代码创建了一个KafkaProducer实例,设置了配置,包括服务器地址和序列化器,并通过循环发送了不同类型的ProducerRecord。最后,它确保在完成操作后关闭生产者以释放资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Kafka-consumer 不要忘了close

package com.ws.kafka

import java.util.Properties

import org.apache.kafka.clients.producer.{KafkaProducer, ProducerRecord}
import org.apache.kafka.common.serialization.StringSerializer

object KProducer {
  def main(args: Array[String]): Unit = {
    val prop = new Properties()
    // 指定kafka的server地址
    prop.setProperty("bootstrap.servers","dream1:9092,dream2:9092,dream3:9092")
    // 设置反序列化组件 一下两种方式都可以
    prop.setProperty("key.serializer",classOf[StringSerializer].getName)
    prop.setProperty("value.serializer","org.apache.kafka.common.serialization.StringSerializer")
    // 主题名称
    val topic = "wordcount"
    // 创建生产者
    val producer: KafkaProducer[String, String] = new KafkaProducer[String, String](prop)
    for (i <- 1 to 10){
      // 指定编号的数据
      val record1 = new ProducerRecord[String,String](topic,1,System.currentTimeMillis(),"key"+i,"value"+i)
      // 轮询分区,根据分区编号
      val par = i % 3
      val record2 = new ProducerRecord[String,String](topic,par,System.currentTimeMillis(),"key"+i,"value"+i)
      // 根据key进行分区 key.hashcode % partationnum
      val record3 = new ProducerRecord[String,String](topic,"key","value"+i)
      // 什么都不指定,默认策略(沦陷)
      val record4 = new ProducerRecord[String,String](topic,"value"+i)
      // 发送消息
      producer.send(record4)
    }
    producer.close()
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值