|
|
|
@ -3,22 +3,31 @@ package KafkaUtil
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"context"
|
|
|
|
|
"dsDataex/Utils/ConfigUtil"
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/segmentio/kafka-go"
|
|
|
|
|
"strconv"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var KafkaClient *kafka.Conn
|
|
|
|
|
|
|
|
|
|
var KafkaBroker string
|
|
|
|
|
var CTX context.Context
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
|
|
|
|
|
CTX=context.Background()
|
|
|
|
|
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(CTX , "tcp", ConfigUtil.KafkaBrokers[0], "__consumer_offsets" , 0)
|
|
|
|
|
|
|
|
|
|
brokers,_:= KafkaClient.Brokers()
|
|
|
|
|
|
|
|
|
|
KafkaBroker=brokers[0].Host+":"+strconv.Itoa(brokers[0].Port)+"【"+strconv.Itoa(brokers[0].ID)+"】"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ProvideLow(topic string) {
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(context.Background(), "tcp", "192.168.0.200:9092", topic , 0)
|
|
|
|
|
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(context.Background(), "tcp", ConfigUtil.KafkaBrokers[0], topic , 0)
|
|
|
|
|
|
|
|
|
|
KafkaClient.SetWriteDeadline(time.Now().Add(5 *time.Second))
|
|
|
|
|
|
|
|
|
@ -31,7 +40,10 @@ func ProvideLow(topic string) {
|
|
|
|
|
//KafkaClient.Close()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ConsumeLow() {
|
|
|
|
|
func ConsumeLow(topic string) {
|
|
|
|
|
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(context.Background(), "tcp", ConfigUtil.KafkaBrokers[0], topic , 0)
|
|
|
|
|
|
|
|
|
|
KafkaClient.SetReadDeadline(time.Now().Add(5 *time.Second))
|
|
|
|
|
|
|
|
|
|
batch := KafkaClient.ReadBatch(10e3, 1e6) // fetch 10KB min, 1MB max
|
|
|
|
@ -53,13 +65,13 @@ func ConsumeLow() {
|
|
|
|
|
//KafkaClient.Close()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Consume() {
|
|
|
|
|
func Consume(topic string,group string) {
|
|
|
|
|
|
|
|
|
|
r := kafka.NewReader(kafka.ReaderConfig{
|
|
|
|
|
Brokers: []string{"192.168.0.200:9092"},
|
|
|
|
|
Topic: "log_login",
|
|
|
|
|
Brokers: ConfigUtil.KafkaBrokers ,
|
|
|
|
|
Topic: topic,
|
|
|
|
|
//Partition: 0,
|
|
|
|
|
GroupID: "Group_04",//必须指定 Group,否则需要指定 Partition!!!
|
|
|
|
|
GroupID: group,//必须指定 Group,否则需要指定 Partition!!!
|
|
|
|
|
MinBytes: 10e3, // 10KB
|
|
|
|
|
MaxBytes: 10e6, // 10MB
|
|
|
|
|
})
|
|
|
|
@ -77,11 +89,11 @@ func Consume() {
|
|
|
|
|
r.Close()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Provide(){
|
|
|
|
|
func Provide(topic string){
|
|
|
|
|
|
|
|
|
|
w := kafka.NewWriter(kafka.WriterConfig{
|
|
|
|
|
Brokers: []string{"192.168.0.200:9092"},
|
|
|
|
|
Topic: "log_login",
|
|
|
|
|
Brokers: ConfigUtil.KafkaBrokers,
|
|
|
|
|
Topic: topic,
|
|
|
|
|
Balancer: &kafka.LeastBytes{},//Partition 自动分配器
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
@ -103,11 +115,11 @@ func Provide(){
|
|
|
|
|
|
|
|
|
|
func CreateTopic(topic string){
|
|
|
|
|
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(CTX , "tcp", "10.10.14.238:9092", "__consumer_offsets" , 0)
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader(CTX , "tcp", ConfigUtil.KafkaBrokers[0], "__consumer_offsets" , 0)
|
|
|
|
|
|
|
|
|
|
err:= KafkaClient.CreateTopics(kafka.TopicConfig{
|
|
|
|
|
NumPartitions: 8,
|
|
|
|
|
ReplicationFactor: 1,
|
|
|
|
|
ReplicationFactor: int(ConfigUtil.KafkaReply),
|
|
|
|
|
Topic: topic,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
@ -117,7 +129,7 @@ func CreateTopic(topic string){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func DeleteTopic(topic string){
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader( CTX, "tcp", "10.10.14.238:9092", topic , 0)
|
|
|
|
|
KafkaClient, _ = kafka.DialLeader( CTX, "tcp", ConfigUtil.KafkaBrokers[0], topic , 0)
|
|
|
|
|
|
|
|
|
|
err:= KafkaClient.DeleteTopics(topic)
|
|
|
|
|
|
|
|
|
|