kafka的go版本api使用

概述

go语言版本的kafakaAPI

准备

简单使用

生产和消费的过程都是通过一个配置开始的.

生产者

//设置配置
    config := sarama.NewConfig()
    //等待服务器所有副本都保存成功后的响应
    config.Producer.RequiredAcks = sarama.WaitForAll
    //随机的分区类型
    config.Producer.Partitioner = sarama.NewRandomPartitioner
    //是否等待成功和失败后的响应,只有上面的RequireAcks设置不是NoReponse这里才有用.
    config.Producer.Return.Successes = true
    config.Producer.Return.Errors = true
    //设置使用的kafka版本,如果低于V0_10_0_0版本,消息中的timestrap没有作用.需要消费和生产同时配置
    config.Version = sarama.V0_11_0_0

    //使用配置,新建一个异步生产者
    producer, e := sarama.NewAsyncProducer([]string{
  "IP:9092","IP:9092","IP:9092"}, config)
    if e != nil {
        panic(e)
    }
    defer producer.AsyncClose()

    //发送的消息,主题,key
    msg := &sarama.ProducerMessage{
        Topic: "logstash_test",
        Key:   sarama.StringEncoder("test"),
    }

    var value string
    for {
        value = "this is a message"
        //设置发送的真正内容
        fmt.Scanln(&value)
        //将字符串转化为字节数组
        msg.Value = sarama.ByteEncoder(value)
        fmt.Println(value)

        //使用通道发送
        producer.Input() <- msg

        //循环判断哪个通道发送过来数据.
        select {
        case suc := <-producer.Successes():
            fmt.Println("offset: ", suc.Offset, "timestamp: ", suc.Timestamp.String(), "partitions: ", suc.Partition)
        case fail := <-produc
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值