refactor(go): default to go vehicle topics
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
||||
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/observability"
|
||||
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/realtime"
|
||||
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/stats"
|
||||
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/topics"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -163,15 +164,16 @@ func consumeKafka(ctx context.Context, logger interface {
|
||||
Error(string, ...any)
|
||||
Warn(string, ...any)
|
||||
}, registry *metrics.Registry, updater realtimeUpdater, brokers []string) {
|
||||
kafkaTopics := kafkaTopicsFromEnv()
|
||||
reader := kafka.NewReader(kafka.ReaderConfig{
|
||||
Brokers: brokers,
|
||||
GroupID: env("KAFKA_GROUP", "go-realtime-api"),
|
||||
GroupTopics: splitCSV(env("KAFKA_TOPICS", "vehicle.event.unified.v1")),
|
||||
GroupTopics: kafkaTopics,
|
||||
MinBytes: 1,
|
||||
MaxBytes: 10e6,
|
||||
})
|
||||
defer reader.Close()
|
||||
logger.Info("realtime kafka consumer started", "topics", env("KAFKA_TOPICS", "vehicle.event.unified.v1"))
|
||||
logger.Info("realtime kafka consumer started", "topics", strings.Join(kafkaTopics, ","))
|
||||
for {
|
||||
message, err := reader.FetchMessage(ctx)
|
||||
if err != nil {
|
||||
@@ -185,6 +187,10 @@ func consumeKafka(ctx context.Context, logger interface {
|
||||
}
|
||||
}
|
||||
|
||||
func kafkaTopicsFromEnv() []string {
|
||||
return splitCSV(env("KAFKA_TOPICS", topics.Unified))
|
||||
}
|
||||
|
||||
const kafkaMessageOperationTimeout = 30 * time.Second
|
||||
|
||||
type realtimeUpdater interface {
|
||||
|
||||
@@ -95,6 +95,14 @@ func TestCompositeRealtimeUpdaterUpdatesBothStores(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestKafkaTopicsFromEnvDefaultsToGoUnifiedTopic(t *testing.T) {
|
||||
got := strings.Join(kafkaTopicsFromEnv(), ",")
|
||||
want := "vehicle.event.go.unified.v1"
|
||||
if got != want {
|
||||
t.Fatalf("topics = %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
type contextCheckingRealtimeUpdater struct {
|
||||
ctxErr error
|
||||
count int
|
||||
|
||||
Reference in New Issue
Block a user