【GO语言项目实战】kafka在Windows上部署,生产、消费消息的小Demo

本文介绍如何在Windows环境下安装配置Kafka,并通过Go语言实现与Kafka的交互,包括发送消息及使用Kafka客户端消费这些消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:此Demo用于验证kafka的Windows安装部署,熟悉go语言连接kafka基本用法


一、安装JDK

kafka依赖于zookeeper,zookeeper依赖于jdk,所以第一步先安装JDK,下载安装指导


二、安装zookeeper

ZooKeeper下载安装指导

三、安装Kafka

<Kafka下载安装指导

四、运行GO程序,连接Kafka;向Kafka发送消息,用自带客户端消费查看消息

代码如下(示例):

package main

import (
   "fmt"
   "github.com/Shopify/sarama"
)

// samara是消息生产者,配合kafka使用
func main() {
   // 1、生成配置
   config := sarama.NewConfig()                              // 初始化配置
   config.Producer.RequiredAcks = sarama.WaitForAll          // 配置应答确认机制ACK, 0/1/-1 三种配置
   config.Producer.Partitioner = sarama.NewRandomPartitioner // 随机分配个分区
   config.Producer.Return.Successes = true                   // 成功交付的消息将在success channel返回

   // 2、构造消息
   msg := sarama.ProducerMessage{}
   msg.Topic = "shopping"
   msg.Value = sarama.StringEncoder("2022.10.20 Go Learning")

   // 3、连接kafka
   client, err := sarama.NewSyncProducer([]string{"127.0.0.1:9092"}, config)
   defer client.Close()
   if err != nil {
      fmt.Println("producer failed to connect kafka, err: ", err)
      return
   }

   // 4、发送消息
   pid, offset, err := client.SendMessage(&msg) // 若成功,返回partition号和offset。
   if err != nil {
      fmt.Println("Failed to send message, err: ", err)
   }
   fmt.Printf("pid: %v, offset: %v\n", pid, offset)
}

上面的程序执行2遍,就是向kafka发送了2条Msg,可以看到2次返回的的pid都是0,代表分区相同,offset分别为0和1,代表消息实际存放位置不同,偏移量不同。然后用kafka自带的客户端可查取到这2条消息,如下:

D:\软件安装包\Windows环境安装包\kafka_2.13-3.0.2\bin\windows>kafka-console-consumer.bat --bootstrap-server 127.0.0.1:9092 --topic shopping --from-beginning
2022.10.20 Go Learning
2022.10.20 Go Learning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值