You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem is when kafka server is down, the diode.poll() loop infinite so it write log a lot
func (kw *KafkaLogWriter) Write(p []byte) (n int, err error) {
m := kafka.Message{
Value: p,
}
err = kw.WriteMessages(context.Background(), m)
if err != nil {
log.Printf("failed to write log message to kafka topic:")
return 0, err
}
return len(p), nil
}
I also want to ask how this infinite for break ,
func (dw Writer) poll() {
defer close(dw.done)
for {
d := dw.d.Next() // -----> when debug, in normal case it out of for loop here, when kafka error, it loop infinite
if d == nil {
return
}
p := *(*[]byte)(d)
dw.w.Write(p)
// Proper usage of a sync.Pool requires each entry to have approximately
// the same memory cost. To obtain this property when the stored type
// contains a variably-sized buffer, we add a hard limit on the maximum buffer
// to place back in the pool.
//
// See https://golang.org/issue/23199
const maxSize = 1 << 16 // 64KiB
if cap(p) <= maxSize {
bufPool.Put(p[:0])
}
}
}
The text was updated successfully, but these errors were encountered:
I create a multi writer to file and to kafka as in project https://github.com/vasupal1996/go-app.git
The implement of kafka is : https://github.com/vasupal1996/go-app/blob/master/server/logger/kafkaLogger.go
Problem is when kafka server is down, the diode.poll() loop infinite so it write log a lot
I also want to ask how this infinite for break ,
The text was updated successfully, but these errors were encountered: