修改配置
This commit is contained in:
@@ -68,7 +68,10 @@ REDIS_PORT=6379
|
|||||||
REDIS_PASSWORD=openIM123
|
REDIS_PASSWORD=openIM123
|
||||||
|
|
||||||
# ── Kafka(Docker 本地运行,KRaft 模式)────────────────────────────────────
|
# ── Kafka(Docker 本地运行,KRaft 模式)────────────────────────────────────
|
||||||
|
# KAFKA_PORT:本机 open-im-server / chat 等使用的 bootstrap(127.0.0.1:KAFKA_PORT)
|
||||||
|
# KAFKA_EXTERNAL_PORT:外网客户端 bootstrap(DEPLOY_TEST_IP:KAFKA_EXTERNAL_PORT),PLAINTEXT 无加密,须防火墙/安全组放行
|
||||||
KAFKA_PORT=9092
|
KAFKA_PORT=9092
|
||||||
|
KAFKA_EXTERNAL_PORT=9094
|
||||||
|
|
||||||
# ── Etcd(Docker 本地运行,服务发现注册中心)───────────────────────────────
|
# ── Etcd(Docker 本地运行,服务发现注册中心)───────────────────────────────
|
||||||
ETCD_PORT=2379
|
ETCD_PORT=2379
|
||||||
|
|||||||
@@ -63,36 +63,42 @@ start_docker_logger "dev-redis"
|
|||||||
step "Kafka (KRaft)"
|
step "Kafka (KRaft)"
|
||||||
|
|
||||||
if docker ps --format '{{.Names}}' | grep -q '^dev-kafka$'; then
|
if docker ps --format '{{.Names}}' | grep -q '^dev-kafka$'; then
|
||||||
success "Kafka 已在运行 (container=dev-kafka) :${KAFKA_PORT}"
|
success "Kafka 已在运行 (container=dev-kafka) 本机 :${KAFKA_PORT} 外网 ${DEPLOY_TEST_IP}:${KAFKA_EXTERNAL_PORT:-9094}"
|
||||||
elif docker ps -a --format '{{.Names}}' | grep -q '^dev-kafka$'; then
|
elif docker ps -a --format '{{.Names}}' | grep -q '^dev-kafka$'; then
|
||||||
info "重新启动已有容器 dev-kafka..."
|
info "重新启动已有容器 dev-kafka..."
|
||||||
docker start dev-kafka > /dev/null
|
docker start dev-kafka > /dev/null
|
||||||
else
|
else
|
||||||
info "创建并启动 Kafka 容器(首次拉取镜像可能较慢)..."
|
info "创建并启动 Kafka 容器(首次拉取镜像可能较慢)..."
|
||||||
KAFKA_CLUSTER_ID="MkU3OEVBNTcwNTJENDM2Qk"
|
KAFKA_CLUSTER_ID="MkU3OEVBNTcwNTJENDM2Qk"
|
||||||
|
KAFKA_EXTERNAL_PORT="${KAFKA_EXTERNAL_PORT:-9094}"
|
||||||
|
|
||||||
# bitnamilegacy/kafka 容器内以 uid=1001 运行,宿主目录需提前授权
|
# bitnamilegacy/kafka 容器内以 uid=1001 运行,宿主目录需提前授权
|
||||||
mkdir -p "${DATA_DIR}/kafka"
|
mkdir -p "${DATA_DIR}/kafka"
|
||||||
chown -R 1001:1001 "${DATA_DIR}/kafka" 2>/dev/null || \
|
chown -R 1001:1001 "${DATA_DIR}/kafka" 2>/dev/null || \
|
||||||
chmod -R 777 "${DATA_DIR}/kafka" # 无 chown 权限时退回 777
|
chmod -R 777 "${DATA_DIR}/kafka" # 无 chown 权限时退回 777
|
||||||
|
|
||||||
|
# 双 listener:INTERNAL 供本机服务(与 kafka.yml 127.0.0.1 一致);EXTERNAL 供公网 bootstrap(advertise DEPLOY_TEST_IP)
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name dev-kafka \
|
--name dev-kafka \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-p "${KAFKA_PORT}:9092" \
|
-p "${KAFKA_PORT}:9092" \
|
||||||
|
-p "${KAFKA_EXTERNAL_PORT}:9094" \
|
||||||
-v "${DATA_DIR}/kafka:/bitnami/kafka" \
|
-v "${DATA_DIR}/kafka:/bitnami/kafka" \
|
||||||
-e KAFKA_CFG_NODE_ID=0 \
|
-e KAFKA_CFG_NODE_ID=0 \
|
||||||
-e KAFKA_CFG_PROCESS_ROLES=controller,broker \
|
-e KAFKA_CFG_PROCESS_ROLES=controller,broker \
|
||||||
-e KAFKA_CFG_LISTENERS="PLAINTEXT://:9092,CONTROLLER://:9093" \
|
-e KAFKA_CFG_LISTENERS="INTERNAL://:9092,EXTERNAL://:9094,CONTROLLER://:9093" \
|
||||||
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT" \
|
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT" \
|
||||||
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS="0@localhost:9093" \
|
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS="0@localhost:9093" \
|
||||||
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
|
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
|
||||||
-e KAFKA_CFG_ADVERTISED_LISTENERS="PLAINTEXT://127.0.0.1:${KAFKA_PORT}" \
|
-e KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL \
|
||||||
|
-e KAFKA_CFG_ADVERTISED_LISTENERS="INTERNAL://127.0.0.1:${KAFKA_PORT},EXTERNAL://${DEPLOY_TEST_IP}:${KAFKA_EXTERNAL_PORT}" \
|
||||||
-e KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true \
|
-e KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true \
|
||||||
-e KAFKA_KRAFT_CLUSTER_ID="$KAFKA_CLUSTER_ID" \
|
-e KAFKA_KRAFT_CLUSTER_ID="$KAFKA_CLUSTER_ID" \
|
||||||
"${LOG_OPTS[@]}" \
|
"${LOG_OPTS[@]}" \
|
||||||
bitnamilegacy/kafka:3.5.1 \
|
bitnamilegacy/kafka:3.5.1 \
|
||||||
> /dev/null
|
> /dev/null
|
||||||
|
info " 本机 bootstrap: 127.0.0.1:${KAFKA_PORT}(INTERNAL)"
|
||||||
|
info " 外网 bootstrap: ${DEPLOY_TEST_IP}:${KAFKA_EXTERNAL_PORT}(EXTERNAL,PLAINTEXT;请在安全组放行 TCP ${KAFKA_EXTERNAL_PORT})"
|
||||||
fi
|
fi
|
||||||
start_docker_logger "dev-kafka"
|
start_docker_logger "dev-kafka"
|
||||||
|
|
||||||
@@ -115,7 +121,7 @@ for _i in $(seq 1 45); do
|
|||||||
done
|
done
|
||||||
echo "" # 清除 \r 留下的行
|
echo "" # 清除 \r 留下的行
|
||||||
if [[ $_kafka_ready -eq 1 ]]; then
|
if [[ $_kafka_ready -eq 1 ]]; then
|
||||||
success "Kafka 已就绪 :${KAFKA_PORT}"
|
success "Kafka 已就绪 本机 127.0.0.1:${KAFKA_PORT} 外网 ${DEPLOY_TEST_IP}:${KAFKA_EXTERNAL_PORT:-9094}"
|
||||||
else
|
else
|
||||||
error "Kafka 90s 内未就绪,请检查日志: ./deploy-test/logs.sh kafka"
|
error "Kafka 90s 内未就绪,请检查日志: ./deploy-test/logs.sh kafka"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -250,6 +256,7 @@ echo " Docker 容器日志: $DOCKER_LOG_DIR/"
|
|||||||
echo " 本脚本执行日志: $_CURRENT_SCRIPT_LOG"
|
echo " 本脚本执行日志: $_CURRENT_SCRIPT_LOG"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " LiveKit 公网: ${LIVEKIT_NODE_IP}:50000-51000/udp (WebRTC 媒体流)"
|
echo -e " LiveKit 公网: ${LIVEKIT_NODE_IP}:50000-51000/udp (WebRTC 媒体流)"
|
||||||
|
echo -e " Kafka 外网 bootstrap(若已映射): ${DEPLOY_TEST_IP}:${KAFKA_EXTERNAL_PORT:-9094} TCP PLAINTEXT"
|
||||||
echo ""
|
echo ""
|
||||||
success "Docker 基础设施已就绪!"
|
success "Docker 基础设施已就绪!"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ BUILD_AWS_SECRET_KEY=xxx
|
|||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_PASSWORD=openIM123
|
REDIS_PASSWORD=openIM123
|
||||||
KAFKA_PORT=9092
|
KAFKA_PORT=9092
|
||||||
|
KAFKA_EXTERNAL_PORT=9094 # 外网访问 Kafka bootstrap:DEPLOY_TEST_IP:KAFKA_EXTERNAL_PORT(须安全组放行)
|
||||||
ETCD_PORT=2379
|
ETCD_PORT=2379
|
||||||
|
|
||||||
# ══ LiveKit(本机 Docker,使用公网 IP)════════════════════════
|
# ══ LiveKit(本机 Docker,使用公网 IP)════════════════════════
|
||||||
@@ -246,10 +247,12 @@ TENCENT_SDK_SECRET_KEY=xxx
|
|||||||
| 服务 | 端口 |
|
| 服务 | 端口 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| Redis | :6379 |
|
| Redis | :6379 |
|
||||||
| Kafka | :9092 |
|
| Kafka | 本机服务:`127.0.0.1:9092`(INTERNAL);外网客户端:`DEPLOY_TEST_IP:9094`(EXTERNAL,PLAINTEXT,默认 `KAFKA_EXTERNAL_PORT=9094`) |
|
||||||
| Etcd | :2379 |
|
| Etcd | :2379 |
|
||||||
| LiveKit | :7880 (API) / :7882 (TCP) / :50000-51000/udp (WebRTC) |
|
| LiveKit | :7880 (API) / :7882 (TCP) / :50000-51000/udp (WebRTC) |
|
||||||
|
|
||||||
|
> **Kafka 外网**:`03-start-infra.sh` 使用双 listener。云主机安全组需放行 **TCP `KAFKA_EXTERNAL_PORT`**(默认 9094)。仅本机跑后端时仍连 `127.0.0.1:9092` 即可。**若曾用旧脚本建过 `dev-kafka` 单 listener,需** `docker rm -f dev-kafka` **并删除** `.deploy-test/docker-data/kafka` **后重新执行** `03-start-infra.sh`(或 `remove-infra.sh`)以应用新配置。公网 PLAINTEXT 无加密,生产请配合 VPN 或 SASL。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## LiveKit 说明
|
## LiveKit 说明
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ echo ""
|
|||||||
echo -e "${BOLD}[ Docker 基础设施 ]${NC}"
|
echo -e "${BOLD}[ Docker 基础设施 ]${NC}"
|
||||||
print_container_status "Redis" "dev-redis" "${REDIS_PORT:-6379}"
|
print_container_status "Redis" "dev-redis" "${REDIS_PORT:-6379}"
|
||||||
print_container_status "Kafka" "dev-kafka" "${KAFKA_PORT:-9092}"
|
print_container_status "Kafka" "dev-kafka" "${KAFKA_PORT:-9092}"
|
||||||
|
printf " ${CYAN}◉${NC} %-10s Kafka 外网 bootstrap(EXTERNAL)%s:%s TCP PLAINTEXT\n" "" "${DEPLOY_TEST_IP:-?}" "${KAFKA_EXTERNAL_PORT:-9094}"
|
||||||
print_container_status "Etcd" "dev-etcd" "${ETCD_PORT:-2379}"
|
print_container_status "Etcd" "dev-etcd" "${ETCD_PORT:-2379}"
|
||||||
print_container_status "LiveKit" "dev-livekit" "7880"
|
print_container_status "LiveKit" "dev-livekit" "7880"
|
||||||
printf " ${CYAN}◉${NC} %-10s 公网 %s:50000-51000/udp (WebRTC)\n" "" "${LIVEKIT_NODE_IP:-?}"
|
printf " ${CYAN}◉${NC} %-10s 公网 %s:50000-51000/udp (WebRTC)\n" "" "${LIVEKIT_NODE_IP:-?}"
|
||||||
|
|||||||
Reference in New Issue
Block a user