ZBLOG

golang 异步生产者发送消息的示例

以下是一个使用 golang 的异步生产者发送消息的示例:

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/Shopify/sarama" // 导入 sarama 包
  5. )
  6. func main() {
  7. config := sarama.NewConfig()
  8. producer, err := sarama.NewAsyncProducer([]string{"localhost:9092"}, config) // 创建一个异步生产者,连接本地的 kafka broker
  9. if err != nil {
  10. panic(err)
  11. }
  12. defer func() {
  13. if err := producer.Close(); err != nil { // 关闭生产者连接
  14. fmt.Println("Failed to close producer: ", err)
  15. }
  16. }()
  17. message := &sarama.ProducerMessage{Topic: "test", Value: sarama.StringEncoder("Hello World!")} // 创建一个消息对象
  18. producer.Input() <- message // 发送消息到生产者的输入通道
  19. select {
  20. case success := <-producer.Successes(): // 监听成功发送的消息
  21. fmt.Printf("Produced message to topic %s partition:%d offset:%d\n", success.Topic, success.Partition, success.Offset)
  22. case err := <-producer.Errors(): // 监听发送失败的消息
  23. fmt.Println("Failed to produce message:", err)
  24. }
  25. }

以上代码使用了 sarama 包来创建一个异步生产者并发送一条消息到名为 test 的主题。通过向生产者的输入通道发送 message 对象来触发生产者发送这条消息。同时,我们使用 select 语句监听成功和失败两种情况,并在控制台输出相应信息。

需要注意的是,在使用 sarama 包时,我们需要在代码中引入该包并进行相应配置,如上例中的 config 对象。具体的配置方式和参数可参考 sarama 包的文档。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5047

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?