refactor(consul): 更新服务检查地址为远程IP并重构部署脚本
将Consul配置中的服务检查地址从容器名改为远程IP地址,以支持跨服务器健康检查 删除旧的部署脚本和配置文件,新增分离的远程和本地部署脚本 重构docker-compose配置为远程和本地两个版本,优化服务部署结构
This commit is contained in:
parent
30420cd612
commit
92029b89e9
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "data-service",
|
||||
"check": {
|
||||
"http": "http://ari-data-service:8000/api/public/stock_bid_ask_em?symbol=000001",
|
||||
"http": "http://10.195.102.127:8000/api/public/stock_bid_ask_em?symbol=000001",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "emotion-service",
|
||||
"check": {
|
||||
"http": "http://emotion-service:8002/health",
|
||||
"http": "http://10.195.102.127:8002/health",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "frontend",
|
||||
"check": {
|
||||
"http": "http://frontend:80/",
|
||||
"http": "http://10.195.102.127:8080/",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "quant-service",
|
||||
"check": {
|
||||
"http": "http://quant-service:8001/health",
|
||||
"http": "http://10.195.102.127:8001/health",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "recommend-service",
|
||||
"check": {
|
||||
"http": "http://recommend-service:8003/health",
|
||||
"http": "http://10.195.102.127:8003/health",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"service": {
|
||||
"address": "user-service",
|
||||
"check": {
|
||||
"http": "http://user-service:8004/health",
|
||||
"http": "http://10.195.102.127:8004/health",
|
||||
"interval": "10s",
|
||||
"timeout": "5s"
|
||||
},
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
{
|
||||
"service": {
|
||||
"name": "whoami",
|
||||
"tags": [
|
||||
"traefik.enable=true",
|
||||
"traefik.http.routers.whoami.entrypoints=web",
|
||||
"traefik.http.routers.whoami.rule=Path(\"/whoami\")",
|
||||
"traefik.http.services.whoami.loadbalancer.server.port=80"
|
||||
],
|
||||
"address": "whoami",
|
||||
"port": 80,
|
||||
"checks": [
|
||||
{
|
||||
"http": "http://whoami:80/",
|
||||
"interval": "10s",
|
||||
"timeout": "2s"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -5,40 +5,6 @@ networks:
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
consul:
|
||||
image: consul:1.15
|
||||
container_name: ari-consul
|
||||
restart: always
|
||||
ports:
|
||||
- "8500:8500" # Consul Web UI
|
||||
- "8600:8600/udp" # DNS服务
|
||||
volumes:
|
||||
- ./consul/config/${ENV_CONFIG_DIR}:/consul/config
|
||||
command: "consul agent -server -bootstrap-expect=1 ${CONSUL_DEV_MODE} -config-dir=/consul/config -client=0.0.0.0"
|
||||
networks:
|
||||
- microservice-network
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8500/v1/status/leader"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
traefik:
|
||||
image: traefik:v2.11
|
||||
container_name: ari-traefik
|
||||
command:
|
||||
- --configFile=/etc/traefik/traefik.yml
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "8080:8080" # Traefik dashboard
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./traefik/config/${TRAEFIK_CONFIG_DIR}/traefik.yml:/etc/traefik/traefik.yml
|
||||
- ./traefik/certs:/etc/traefik/certs
|
||||
networks:
|
||||
- microservice-network
|
||||
|
||||
data-service:
|
||||
image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/data-service:latest
|
||||
container_name: ari-data-service
|
||||
@ -54,11 +20,10 @@ services:
|
||||
image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/quant-service:latest
|
||||
container_name: ari-quant-service
|
||||
restart: always
|
||||
depends_on:
|
||||
consul:
|
||||
condition: service_healthy
|
||||
expose:
|
||||
- "8001"
|
||||
ports:
|
||||
- "8001:8001"
|
||||
networks:
|
||||
- microservice-network
|
||||
environment:
|
||||
@ -68,11 +33,10 @@ services:
|
||||
image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/emotion-service:latest
|
||||
container_name: ari-emotion-service
|
||||
restart: always
|
||||
depends_on:
|
||||
consul:
|
||||
condition: service_healthy
|
||||
expose:
|
||||
- "8002"
|
||||
ports:
|
||||
- "8002:8002"
|
||||
networks:
|
||||
- microservice-network
|
||||
environment:
|
||||
@ -82,11 +46,10 @@ services:
|
||||
image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/recommend-service:latest
|
||||
container_name: ari-recommend-service
|
||||
restart: always
|
||||
depends_on:
|
||||
consul:
|
||||
condition: service_healthy
|
||||
expose:
|
||||
- "8003"
|
||||
ports:
|
||||
- "8003:8003"
|
||||
networks:
|
||||
- microservice-network
|
||||
environment:
|
||||
@ -96,11 +59,10 @@ services:
|
||||
image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/user-service:latest
|
||||
container_name: ari-user-service
|
||||
restart: always
|
||||
depends_on:
|
||||
consul:
|
||||
condition: service_healthy
|
||||
expose:
|
||||
- "8004"
|
||||
ports:
|
||||
- "8004:8004"
|
||||
networks:
|
||||
- microservice-network
|
||||
environment:
|
||||
@ -119,13 +81,9 @@ services:
|
||||
- user-service
|
||||
expose:
|
||||
- "80"
|
||||
ports:
|
||||
- "8080:8080"
|
||||
networks:
|
||||
- microservice-network
|
||||
environment:
|
||||
- SERVICE_NAME=frontend
|
||||
|
||||
whoami:
|
||||
image: traefik/whoami
|
||||
container_name: whoami
|
||||
networks:
|
||||
- microservice-network
|
||||
40
docker-compose.remote.yml
Normal file
40
docker-compose.remote.yml
Normal file
@ -0,0 +1,40 @@
|
||||
version: '3.8'
|
||||
|
||||
networks:
|
||||
microservice-network:
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
consul:
|
||||
image: consul:1.15
|
||||
container_name: ari-consul
|
||||
restart: always
|
||||
ports:
|
||||
- "8500:8500" # Consul Web UI
|
||||
- "8600:8600/udp" # DNS服务
|
||||
volumes:
|
||||
- ./consul/config/${ENV_CONFIG_DIR}:/consul/config
|
||||
command: "consul agent -server -bootstrap-expect=1 ${CONSUL_DEV_MODE} -config-dir=/consul/config -client=0.0.0.0"
|
||||
networks:
|
||||
- microservice-network
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8500/v1/status/leader"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
traefik:
|
||||
image: traefik:v2.11
|
||||
container_name: ari-traefik
|
||||
command:
|
||||
- --configFile=/etc/traefik/traefik.yml
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "8080:8080" # Traefik dashboard
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./traefik/config/${TRAEFIK_CONFIG_DIR}/traefik.yml:/etc/traefik/traefik.yml
|
||||
- ./traefik/certs:/etc/traefik/certs
|
||||
networks:
|
||||
- microservice-network
|
||||
43
run-local.sh
Normal file
43
run-local.sh
Normal file
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 本地服务器启动脚本:部署业务服务
|
||||
# 配置参数
|
||||
REGISTRY="crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com"
|
||||
VERSION="latest"
|
||||
COMPOSE_FILE=docker-compose.local.yml
|
||||
USERNAME="2324802641zhengniannian@gmail.com"
|
||||
# 远程Consul地址(请替换为实际远程服务器IP)
|
||||
REMOTE_CONSUL_IP="your_remote_consul_server_ip"
|
||||
|
||||
# 检查Docker和Docker Compose
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: Docker未安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker compose version &> /dev/null; then
|
||||
echo "错误: Docker Compose未安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 登录Docker仓库
|
||||
echo "登录阿里云Docker仓库..."
|
||||
docker login --username=$USERNAME $REGISTRY
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 仓库登录失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启动本地业务服务(不包含Consul和Traefik)
|
||||
echo "正在启动本地业务服务..."
|
||||
VERSION=$VERSION CONSUL_HTTP_ADDR="$REMOTE_CONSUL_IP:8500" docker compose -f $COMPOSE_FILE up -d data-service emotion-service frontend quant-service recommend-service user-service
|
||||
|
||||
# 显示状态
|
||||
echo "\n本地服务状态:"
|
||||
docker compose -f $COMPOSE_FILE ps data-service emotion-service frontend quant-service recommend-service user-service
|
||||
|
||||
echo "\n查看日志命令: docker compose -f $COMPOSE_FILE logs -f"
|
||||
echo "停止服务命令: docker compose -f $COMPOSE_FILE down"
|
||||
echo "\n本地业务服务启动完成!"
|
||||
exit 0
|
||||
41
run-remote.sh
Normal file
41
run-remote.sh
Normal file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 远程服务器启动脚本:部署Consul和Traefik
|
||||
# 配置参数
|
||||
REGISTRY="crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com"
|
||||
VERSION="latest"
|
||||
COMPOSE_FILE="docker-compose.remote.yml"
|
||||
USERNAME="2324802641zhengniannian@gmail.com"
|
||||
|
||||
# 检查Docker和Docker Compose
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: Docker未安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker compose version &> /dev/null; then
|
||||
echo "错误: Docker Compose未安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 登录Docker仓库
|
||||
echo "登录阿里云Docker仓库..."
|
||||
docker login --username=$USERNAME $REGISTRY
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 仓库登录失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启动远程服务(Consul和Traefik)
|
||||
echo "正在启动远程服务..."
|
||||
VERSION=$VERSION docker compose -f $COMPOSE_FILE up -d consul traefik
|
||||
|
||||
# 显示状态
|
||||
echo "\n远程服务状态:"
|
||||
docker compose -f $COMPOSE_FILE ps consul traefik
|
||||
|
||||
echo "\n查看日志命令: docker compose -f $COMPOSE_FILE logs -f consul traefik"
|
||||
echo "停止服务命令: docker compose -f $COMPOSE_FILE down consul traefik"
|
||||
echo "\n远程服务启动完成!"
|
||||
exit 0
|
||||
@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 配置参数
|
||||
REGISTRY="crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com"
|
||||
VERSION="latest"
|
||||
COMPOSE_FILE="docker-compose.aliyun.yml"
|
||||
USERNAME="2324802641zhengniannian@gmail.com"
|
||||
|
||||
# 检查Docker是否安装
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: Docker未安装,请先安装Docker"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查Docker Compose是否安装(使用docker compose子命令)
|
||||
if ! docker compose version &> /dev/null; then
|
||||
echo "错误: Docker Compose未安装,请先安装Docker Compose"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 登录阿里云Docker仓库
|
||||
echo "登录阿里云Docker仓库..."
|
||||
docker login --username=$USERNAME $REGISTRY
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误: 仓库登录失败,请检查用户名和密码"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启动服务
|
||||
echo "正在启动服务 (版本: $VERSION)..."
|
||||
VERSION=$VERSION docker compose -f $COMPOSE_FILE up -d
|
||||
|
||||
# 检查服务状态
|
||||
echo "\n服务状态:"
|
||||
docker compose -f $COMPOSE_FILE ps
|
||||
|
||||
# 显示日志命令提示
|
||||
echo "\n查看服务日志命令: docker compose -f $COMPOSE_FILE logs -f"
|
||||
echo "停止服务命令: docker compose -f $COMPOSE_FILE down"
|
||||
echo "\n服务启动完成!"
|
||||
exit 0
|
||||
Loading…
Reference in New Issue
Block a user