From 9fa6991ffd6641ae23f41bd379787e2cb14c2185 Mon Sep 17 00:00:00 2001 From: zhx Date: Wed, 27 May 2026 18:04:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8mq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../room-service/configs/config.docker.yaml | 4 ++-- .../internal/config/config_test.go | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/services/room-service/configs/config.docker.yaml b/services/room-service/configs/config.docker.yaml index 0edfeead..f9fe076a 100644 --- a/services/room-service/configs/config.docker.yaml +++ b/services/room-service/configs/config.docker.yaml @@ -63,7 +63,7 @@ rocketmq: enabled: true topic: "hyapp_room_outbox" producer_group: "hyapp-room-outbox-producer" - tencent_im_consumer_enabled: false + tencent_im_consumer_enabled: true tencent_im_consumer_group: "hyapp-room-im-bridge" consumer_max_reconsume_times: 16 treasure_open: @@ -73,7 +73,7 @@ rocketmq: consumer_group: "hyapp-room-treasure-open" consumer_max_reconsume_times: 16 outbox_worker: - # Docker 本地走 MQ,避免本地统计链路验证时混入真实 IM 直投副作用。 + # Docker 和 testbox 走 MQ;room-service 同进程启动 IM bridge consumer 补偿房间群消息。 enabled: true publish_mode: "mq" poll_interval: "1s" diff --git a/services/room-service/internal/config/config_test.go b/services/room-service/internal/config/config_test.go index 49025d12..f8bbd9ef 100644 --- a/services/room-service/internal/config/config_test.go +++ b/services/room-service/internal/config/config_test.go @@ -75,6 +75,26 @@ func TestLoadTencentExample(t *testing.T) { } } +func TestLoadDockerConfigStartsRoomIMBridgeWhenOutboxUsesMQ(t *testing.T) { + cfg, err := Load("../../configs/config.docker.yaml") + if err != nil { + t.Fatalf("Load docker config failed: %v", err) + } + + if cfg.OutboxWorker.PublishMode != OutboxPublishModeMQ { + t.Fatalf("docker config should publish room outbox through MQ, got %q", cfg.OutboxWorker.PublishMode) + } + if !cfg.RocketMQ.RoomOutbox.Enabled { + t.Fatalf("docker config must enable room outbox MQ") + } + if !cfg.RocketMQ.RoomOutbox.TencentIMConsumerEnabled { + t.Fatalf("docker mq room outbox must start Tencent IM bridge consumer") + } + if !cfg.TencentIM.Enabled { + t.Fatalf("Tencent IM bridge consumer requires tencent_im.enabled") + } +} + func TestNormalizeRejectsUnknownOutboxRetryStrategy(t *testing.T) { cfg := Default() cfg.OutboxWorker.RetryStrategy = "exponential"