git.zd.zone/hrpc/hrpc@v0.0.12/mq/kafka/producer.go (about) 1 package kafka 2 3 import "github.com/Shopify/sarama" 4 5 func ProduceAsync(topic string, msg Message) error { 6 p, err := sarama.NewAsyncProducerFromClient(k.client) 7 if err != nil { 8 return err 9 } 10 defer p.Close() 11 12 p.Input() <- &sarama.ProducerMessage{ 13 Topic: topic, 14 Key: sarama.StringEncoder(msg.Key), 15 Value: sarama.StringEncoder(msg.Value), 16 } 17 return nil 18 } 19 20 func Produce(topic string, msgs ...Message) error { 21 p, err := sarama.NewSyncProducerFromClient(k.client) 22 if err != nil { 23 return err 24 } 25 defer p.Close() 26 27 var sMessage []*sarama.ProducerMessage 28 for _, msg := range msgs { 29 sMessage = append(sMessage, &sarama.ProducerMessage{ 30 Topic: topic, 31 Key: sarama.StringEncoder(msg.Key), 32 Value: sarama.ByteEncoder(msg.Value), 33 }) 34 } 35 return p.SendMessages(sMessage) 36 }