This commit is contained in:
vet
2026-04-20 17:47:20 +07:00
parent 68c9613cef
commit 0171f17439
3 changed files with 28 additions and 9 deletions

View File

@@ -74,7 +74,7 @@ _start_all() {
step "第 1 组: openim-server核心 IM 服务)"
_start_one openim-server
info "等待 openim-server 将 RPC 注册到 Etcd... (8s)"
info "等待 openim-server 初始化 standalone 内部 RPC... (8s)"
sleep 8
step "第 2 组: chat RPC 服务"

View File

@@ -403,7 +403,8 @@ TENCENT_SDK_SECRET_KEY=xxx
# 查看状态
./deploy-test/status.sh
# status.sh 会输出 Etcd 中已注册的 RPC 服务 key,用于排查 produced zero addresses
# status.sh 会输出 Etcd 中已注册的独立 RPC 服务 key
# openim-server 内部 RPC 是 standalone 进程内注册,不要求出现在 Etcd。
# 重启单个后端服务
./deploy-test/restart.sh chat-api

View File

@@ -42,7 +42,7 @@ else
if [[ -z "$ETCD_KEYS" ]]; then
printf " ${YELLOW}${NC} %-18s %s\n" "registry" "Etcd 可访问,但当前无注册 key"
else
KNOWN_RPC_SERVICES=(
OPENIM_STANDALONE_RPC_SERVICES=(
auth-rpc-service
user-rpc-service
friend-rpc-service
@@ -52,22 +52,38 @@ else
third-rpc-service
push-rpc-service
messagegateway-rpc-service
)
INDEPENDENT_RPC_SERVICES=(
chat-rpc-service
admin-rpc-service
bot-rpc-service
)
found_rpc=0
for svc in "${KNOWN_RPC_SERVICES[@]}"; do
echo -e " ${CYAN}OpenIM standalone 内部 RPC单进程内调用不要求 Etcd 注册):${NC}"
for svc in "${OPENIM_STANDALONE_RPC_SERVICES[@]}"; do
count=$(printf '%s\n' "$ETCD_KEYS" | grep -c "$svc" || true)
if [[ "$count" -gt 0 ]]; then
found_rpc=1
printf " ${GREEN}${NC} %-28s %s key(s)\n" "$svc" "$count"
else
printf " ${CYAN}${NC} %-28s %s\n" "$svc" "standalone 进程内"
fi
done
echo -e " ${CYAN}独立进程 RPC应注册到 Etcd${NC}"
found_required_rpc=0
missing_required_rpc=0
for svc in "${INDEPENDENT_RPC_SERVICES[@]}"; do
count=$(printf '%s\n' "$ETCD_KEYS" | grep -c "$svc" || true)
if [[ "$count" -gt 0 ]]; then
found_required_rpc=1
printf " ${GREEN}${NC} %-28s %s key(s)\n" "$svc" "$count"
else
missing_required_rpc=1
printf " ${YELLOW}${NC} %-28s %s\n" "$svc" "未注册"
fi
done
echo " ${CYAN}原始注册 key过滤 rpc/service/openim/chat/admin 等关键词,最多 80 行):${NC}"
echo -e " ${CYAN}原始注册 key过滤 rpc/service/openim/chat/admin 等关键词,最多 80 行):${NC}"
filtered_keys=$(printf '%s\n' "$ETCD_KEYS" | grep -Ei 'rpc|service|openim|chat|admin|auth|user|friend|group|msg|conversation|third|push|gateway|bot' | head -80 || true)
if [[ -n "$filtered_keys" ]]; then
printf '%s\n' "$filtered_keys" | sed 's/^/ /'
@@ -75,8 +91,10 @@ else
echo " (未匹配到 RPC 相关 key)"
fi
if [[ "$found_rpc" -eq 0 ]]; then
warn " 未发现已知 RPC 服务注册chat-api/openim-api 调 RPC 时可能出现 name resolver error: produced zero addresses"
if [[ "$found_required_rpc" -eq 0 ]]; then
warn " 未发现独立进程 RPC 注册chat-api/admin-api 调 RPC 时可能出现 name resolver error: produced zero addresses"
elif [[ "$missing_required_rpc" -eq 1 ]]; then
warn " 存在独立进程 RPC 未注册;如果对应 API 调用失败,请优先检查该 RPC 进程日志"
fi
fi
else