Refactor Kafka publishing without DB outbox
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/segmentio/kafka-go/sasl"
|
||||
"github.com/segmentio/kafka-go/sasl/scram"
|
||||
"github.com/tinode/chat/server/logs"
|
||||
"github.com/tinode/chat/server/store/types"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -55,6 +56,7 @@ type kafkaEnvelope struct {
|
||||
EventID string `json:"event_id"`
|
||||
TraceID string `json:"trace_id,omitempty"`
|
||||
TenantCode string `json:"tenant_code,omitempty"`
|
||||
TenantID types.TenantID `json:"tenant_id,omitempty"`
|
||||
SourceService string `json:"source_service,omitempty"`
|
||||
TargetService string `json:"target_service,omitempty"`
|
||||
EventType string `json:"event_type"`
|
||||
@@ -132,6 +134,7 @@ func initKafkaRuntime(raw json.RawMessage) error {
|
||||
AllowAutoTopicCreation: cfg.AllowAutoTopic,
|
||||
WriteTimeout: time.Duration(cfg.WriteTimeoutMS) * time.Millisecond,
|
||||
ReadTimeout: time.Duration(cfg.ReadTimeoutMS) * time.Millisecond,
|
||||
MaxAttempts: cfg.MaxRetryCount,
|
||||
}
|
||||
|
||||
if err := rt.ping(context.Background()); err != nil {
|
||||
@@ -164,7 +167,7 @@ func normalizeKafkaConfig(cfg *kafkaConfig) {
|
||||
cfg.RequiredAcks = int(kafka.RequireOne)
|
||||
}
|
||||
if cfg.MaxRetryCount <= 0 {
|
||||
cfg.MaxRetryCount = 5
|
||||
cfg.MaxRetryCount = 3
|
||||
}
|
||||
if len(cfg.RetryBackoffMS) == 0 {
|
||||
cfg.RetryBackoffMS = []int{10000, 30000, 60000, 300000, 900000}
|
||||
|
||||
Reference in New Issue
Block a user