@@ -47,11 +47,11 @@ type sinkConf struct {
4747}
4848
4949type kafkaConf struct {
50- MaxAttempts int `json:"maxAttempts"`
51- RequiredACKs int `json:"requiredACKs "`
52- Key string `json:"key "`
53- Headers interface {} `json:"headers "`
54- WriterConf kafkaWriterConf `json:"writerConf "`
50+ kafkaWriterConf
51+ MaxAttempts int `json:"maxAttempts "`
52+ RequiredACKs int `json:"requiredACKs "`
53+ Key string `json:"key "`
54+ Headers interface {} `json:"headers "`
5555}
5656
5757type kafkaWriterConf struct {
@@ -101,7 +101,7 @@ func (m *kafkaSink) Configure(props map[string]interface{}) error {
101101 }
102102 m .tlsConfig = tlsConfig
103103 kc := getDefaultKafkaConf ()
104- if err := cast . MapToStruct (props , kc ); err != nil {
104+ if err := kc . configure (props ); err != nil {
105105 return err
106106 }
107107 m .kc = kc
@@ -112,15 +112,6 @@ func (m *kafkaSink) Configure(props map[string]interface{}) error {
112112 return m .buildKafkaWriter ()
113113}
114114
115- func (m * kafkaSink ) ConfigureBatch (batchSize int , lingerInterval time.Duration ) {
116- if batchSize > 0 {
117- m .kc .WriterConf .BatchSize = batchSize
118- }
119- if lingerInterval > 0 {
120- m .kc .WriterConf .BatchTimeout = lingerInterval
121- }
122- }
123-
124115func (m * kafkaSink ) buildKafkaWriter () error {
125116 mechanism , err := m .sc .GetMechanism ()
126117 if err != nil {
@@ -136,15 +127,15 @@ func (m *kafkaSink) buildKafkaWriter() error {
136127 AllowAutoTopicCreation : true ,
137128 MaxAttempts : m .kc .MaxAttempts ,
138129 RequiredAcks : kafkago .RequiredAcks (m .kc .RequiredACKs ),
139- BatchSize : m .kc .WriterConf . BatchSize ,
140- BatchBytes : m .kc .WriterConf . BatchBytes ,
141- BatchTimeout : m .kc .WriterConf . BatchTimeout ,
130+ BatchSize : m .kc .BatchSize ,
131+ BatchBytes : m .kc .BatchBytes ,
132+ BatchTimeout : m .kc .BatchTimeout ,
142133 Transport : & kafkago.Transport {
143134 SASL : mechanism ,
144135 TLS : m .tlsConfig ,
145136 },
146137 }
147- conf .Log .Infof ("kafka writer batchSize:%v, batchTimeout:%v" , m .kc .WriterConf . BatchSize , m .kc . WriterConf .BatchTimeout .String ())
138+ conf .Log .Infof ("kafka writer batchSize:%v, batchTimeout:%v" , m .kc .BatchSize , m .kc .BatchTimeout .String ())
148139 m .writer = w
149140 return nil
150141}
@@ -332,11 +323,22 @@ func getDefaultKafkaConf() *kafkaConf {
332323 c := & kafkaConf {
333324 RequiredACKs : - 1 ,
334325 MaxAttempts : 1 ,
335- WriterConf : kafkaWriterConf {
336- BatchSize : 5000 ,
337- BatchTimeout : 200 * time .Millisecond ,
338- BatchBytes : 1048576 * 10 , // 10MB
339- },
326+ }
327+ c .kafkaWriterConf = kafkaWriterConf {
328+ BatchSize : 5000 ,
329+ // send batch ASAP
330+ BatchTimeout : time .Microsecond ,
331+ BatchBytes : 1048576 * 10 , // 10MB
340332 }
341333 return c
342334}
335+
336+ func (kc * kafkaConf ) configure (props map [string ]interface {}) error {
337+ if err := cast .MapToStruct (props , kc ); err != nil {
338+ return err
339+ }
340+ if err := cast .MapToStruct (props , & kc .kafkaWriterConf ); err != nil {
341+ return err
342+ }
343+ return nil
344+ }
0 commit comments