go-kafka创建者

44 阅读1分钟

使用docker安装zk和kafka,kafka用host模式,localhost设置为服务器ip,防止本地无法连接到桥接模式的服务器


kafka-topics --create --topic __consumer_offsets --partitions 50 --replication-factor 1 --config cleanup.policy=compact --bootstrap-server localhost:9092


//创建主题
kafka-topics --create --topic test-topic1 --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092

//生产者
kafka-console-producer --topic test-topic1 --bootstrap-server localhost:9092

//消费
/bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic test-topic1 --from-beginning


package util

import (
	"fmt"
	"go_vue_manage/pkg/kafka"
	"os"
	"os/signal"
	"sync"

	"github.com/Shopify/sarama"
)

type KafkaStore struct{

}

func (kafkaStore KafkaStore)CreateMsg() bool {

	brokers:= kafka.Brokers
	config:=kafka.Config
	producer, err := sarama.NewSyncProducer(brokers, config)
	if err != nil {
		fmt.Println(err)
		return false
	}
	defer producer.Close()
	fmt.Println(producer)
	topic := "test-topic1"
	message := "Hello, Kafka!"

	// 构造消息
	msg := &sarama.ProducerMessage{
		Topic: topic,
		Value: sarama.StringEncoder(message),
	}

	// 发送消息
	partition, offset, err := producer.SendMessage(msg)
	if err != nil {
		fmt.Println(err)
		return false
	}

	fmt.Println(partition)
	fmt.Println(offset)

	


	return true

}