golang sarama_produce_test_with_timestamp.go

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang sarama_produce_test_with_timestamp.go相关的知识,希望对你有一定的参考价值。

package main

import (
	"log"
	"os"
	"time"

	"github.com/Shopify/sarama"
)

func main() {
	config := sarama.NewConfig()
	config.Producer.Return.Errors = true
	config.Producer.Retry.Max = 10
	config.Producer.Compression = sarama.CompressionSnappy // or GZIP don't work in combination with Timestamp!
	config.Producer.Flush.Frequency = 500 * time.Millisecond
	config.ClientID = "test"
	sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags)

	producer, err := sarama.NewAsyncProducer([]string{"localhost:9092"}, config)
	if err != nil {
		log.Fatalln("[ERROR] Failed to start Sarama producer:", err)
	}
	defer producer.Close()

	go func() {
		for err := range producer.Errors() {
			log.Printf("[ERROR]: %s\n", err.Error())
		}
	}()

	producer.Input() <- &sarama.ProducerMessage{
		Timestamp: time.Now(),
		Topic:     "bla",
		Value:     sarama.ByteEncoder("test this message"),
	}
}

golang 日志打印后程序直接退出

参考技术A 在一段 http get 的程序中,如果出现错误,打印日志后会导致程序退出。

将 log.Fatal 修改为 log.Println 即可解决问题。

感觉一个函数做了本不该它做的事情,有些好奇,golang 设计者的设计哲学。

以上是关于golang sarama_produce_test_with_timestamp.go的主要内容,如果未能解决你的问题,请参考以下文章

Golang入门到项目实战 第一个golang应用

golang编译androidso无法加载

golang如何打印内存内容

Golang入门到项目实战 golang匿名函数

json [Golang] golang #golang #snippets中有用的片段

golang使用成本高