linux

Java如何在Linux上实现高可用

小樊
32
2025-12-14 03:21:20
栏目: 编程语言

Java在Linux上的高可用实现路径

一、总体架构与分层

二、单机进程自恢复与快速落地 systemd

[Unit]
Description=My Java App
After=network.target

[Service]
Type=simple
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -Xms512m -Xmx1g -jar /opt/myapp/app.jar --server.port=8080
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
RestartMaxDelaySec=900
StartLimitInterval=300
StartLimitBurst=5
StandardOutput=append:/var/log/myapp/stdout.log
StandardError=append:/var/log/myapp/stderr.log

[Install]
WantedBy=multi-user.target

三、多实例与负载均衡

upstream backend {
    server 10.0.1.11:8080 max_fails=3 fail_timeout=30s;
    server 10.0.1.12:8080 max_fails=3 fail_timeout=30s;
    server 10.0.1.13:8080 max_fails=3 fail_timeout=30s;
}
server {
    listen 80;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

四、主备容灾与VIP漂移 Keepalived

#!/usr/bin/env bash
if ! pgrep -x "java" >/dev/null; then
  systemctl stop keepalived   # 触发切换
fi

五、数据层、监控与常见故障处理

0
看了该问题的人还看了