随笔 - 836  文章 - 1 评论 - 40 阅读 - 102万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

scala kafka api test

 

 

依赖:

  <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.11</artifactId>
            <version>1.1.0</version>
        </dependency>

 

 

 

 base KafkaAPI  test

复制代码
import java.util
import java.util.{Collections, Properties}
import kafka.message.MessageAndMetadata
import org.apache.kafka.clients.consumer.{ConsumerRecord, ConsumerRecords, KafkaConsumer}
import org.apache.kafka.clients.consumer.internals.NoOpConsumerRebalanceListener
import org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}
import org.junit.Test
import scala.actors.threadpool.{ExecutorService, Executors}
import scala.collection.mutable

object KakfaDemo {
  def main(args: Array[String]): Unit =
  {
    val properties = new Properties
    properties.put("bootstrap.servers","192.168.3.70:9092")
    properties.put("acks","0")
    properties.put("retries","3")
    properties.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer")
    properties.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer")
    //create new producer
//    val producer: Producer[String, String] = new Producer[String,String](kafkaConfig)
     val producer = new KafkaProducer[String,String](properties)
    for(i <- 1 to 100)
    {
      var msg=s"${i}  this is test"
//      producer.send(new KeyedMessage[String,String]("test1",msg))
      producer.send(new ProducerRecord[String,String]("test1",msg))
    }

  }

}


object  KafkaTest{

  def main(args: Array[String]): Unit = {
    val props = new Properties();
    props.put("bootstrap.servers", "192.168.3.70:9092")
    props.put("group.id", "test123")
    props.put("enable.auto.commit", "true")
    props.put("auto.offset.reset", "earliest")
    props.put("auto.commit.interval.ms", "1000");
    props.put("session.timeout.ms", "30000");
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

   val consumer = new KafkaConsumer[String, String](props)
    consumer.subscribe(Collections.singletonList("test1"))
    while(true)
    {
      val records = consumer.poll(1000);
      val record = records.iterator()
      while (record.hasNext)
      {
        val msg = record.next()
        System.out.println("offset=" + msg.offset() + ",--key=" + msg.key() + ",--value=" + msg.value())
        print("offset=" + msg.offset() + ",--key=" + msg.key() + ",--value=" + msg.value())
      }
      }
    }
}
复制代码

 

posted on   lshan  阅读(365)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-11-16 subline 正则替换
点击右上角即可分享
微信分享提示