2020-12-26 15:32:45 +00:00
|
|
|
package segmentio
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2021-10-12 12:55:53 +01:00
|
|
|
"go-micro.dev/v4/broker"
|
2021-06-29 20:40:54 +08:00
|
|
|
"github.com/segmentio/kafka-go"
|
2020-12-26 15:32:45 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
DefaultReaderConfig = kafka.WriterConfig{}
|
|
|
|
DefaultWriterConfig = kafka.ReaderConfig{}
|
|
|
|
)
|
|
|
|
|
|
|
|
type readerConfigKey struct{}
|
|
|
|
type writerConfigKey struct{}
|
|
|
|
|
|
|
|
func ReaderConfig(c kafka.ReaderConfig) broker.Option {
|
|
|
|
return setBrokerOption(readerConfigKey{}, c)
|
|
|
|
}
|
|
|
|
|
|
|
|
func WriterConfig(c kafka.WriterConfig) broker.Option {
|
|
|
|
return setBrokerOption(writerConfigKey{}, c)
|
|
|
|
}
|
|
|
|
|
|
|
|
type subscribeContextKey struct{}
|
|
|
|
|
|
|
|
// SubscribeContext set the context for broker.SubscribeOption
|
|
|
|
func SubscribeContext(ctx context.Context) broker.SubscribeOption {
|
|
|
|
return setSubscribeOption(subscribeContextKey{}, ctx)
|
|
|
|
}
|
|
|
|
|
|
|
|
type subscribeReaderConfigKey struct{}
|
|
|
|
|
|
|
|
func SubscribeReaderConfig(c kafka.ReaderConfig) broker.SubscribeOption {
|
|
|
|
return setSubscribeOption(subscribeReaderConfigKey{}, c)
|
|
|
|
}
|
|
|
|
|
|
|
|
type subscribeWriterConfigKey struct{}
|
|
|
|
|
|
|
|
func SubscribeWriterConfig(c kafka.WriterConfig) broker.SubscribeOption {
|
|
|
|
return setSubscribeOption(subscribeWriterConfigKey{}, c)
|
|
|
|
}
|