使用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
}