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  }