提示:此Demo用于验证kafka的Windows安装部署,熟悉go语言连接kafka基本用法
一、安装JDK
kafka依赖于zookeeper,zookeeper依赖于jdk,所以第一步先安装JDK,下载安装指导
二、安装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