refactor(go): default to go vehicle topics

This commit is contained in:
lingniu
2026-07-02 20:22:47 +08:00
parent 3248336bea
commit 2ae9794dda
15 changed files with 130 additions and 27 deletions

View File

@@ -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 {

View File

@@ -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