36 lines
580 B
Go
36 lines
580 B
Go
package kafkaMiddleware
|
|
|
|
import (
|
|
"context"
|
|
"server/conf"
|
|
|
|
"github.com/segmentio/kafka-go"
|
|
)
|
|
|
|
var KafkaMod *kafka.Conn
|
|
var topic string
|
|
|
|
func init() {
|
|
topic = conf.Server.GameName
|
|
partition := 0
|
|
|
|
// 连接至Kafka集群的Leader节点
|
|
conn, err := kafka.DialLeader(context.Background(), "tcp", "kafka-server:9092", topic, partition)
|
|
if err != nil {
|
|
return
|
|
}
|
|
KafkaMod = conn
|
|
}
|
|
|
|
func SendMsg(key, value []byte) error {
|
|
if KafkaMod == nil {
|
|
return nil
|
|
}
|
|
_, err := KafkaMod.WriteMessages(kafka.Message{
|
|
Topic: topic,
|
|
Key: key,
|
|
Value: value,
|
|
})
|
|
return err
|
|
}
|