搭建集群版Eureka Server

Eureka Server注册中心集群中的每个节点都是平等的,每个节点可以作为一个服务,服务节点之间通过发送心跳进行投票。

依赖单机版的eurekaServer的项目修改其中的内容即可。

1.  新建文件application-eurekaserver1.properties

spring.application.name=eureka-server
server.port=8761

# 定义Eureka Server实例在注册中心中的命名。建议使用配置文件的后缀定义。
eureka.instance.hostname=eurekaserver1
# 配置集群中其他Eureka Server节点的信息。如果需要配置多个节点,使用逗号','分割多个节点信息。
# 节点的信息格式为: http://地址:端口/eureka/  。 地址可以使用IP、域名、主机名定义。
# 使用HTTP Basic语法,提供安全认证中需要使用的用户名和密码。
# 语法是: http://用户名:密码@地址:端口/eureka/
eureka.client.serviceUrl.defaultZone=http://eurekaserver2:8761/eureka/

application-eurekaserver2.properties

spring.application.name=eureka-server
server.port=8761

# 定义Eureka Server实例在注册中心中的命名。建议使用配置文件的后缀定义。
eureka.instance.hostname=eurekaserver1
# 配置集群中其他Eureka Server节点的信息。如果需要配置多个节点,使用逗号','分割多个节点信息。
# 节点的信息格式为: http://地址:端口/eureka/  。 地址可以使用IP、域名、主机名定义。
# 使用HTTP Basic语法,提供安全认证中需要使用的用户名和密码。
# 语法是: http://用户名:密码@地址:端口/eureka/
eureka.client.serviceUrl.defaultZone=http://eurekaserver2:8761/eureka/

 

2.  修改主机名,vi /etc/hosts

192.168.186.115 eurekaserver1
192.168.186.116 eurekaserver2

 

3. 使用Maven install打包jar,在项目工程的target目录中,分别上传到两个服务器上

 

4.  在上传jar包同级目录新建文件,vi eurekaserver.sh,修改对应的参数

#!/bin/bash
 
cd `dirname $0`
 
CUR_SHELL_DIR=`pwd`
CUR_SHELL_NAME=`basename ${BASH_SOURCE}`
 
JAR_NAME="项目jar包名称"
JAR_PATH=$CUR_SHELL_DIR/$JAR_NAME
 
#JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024m -XX:PermSize=128m"
JAVA_MEM_OPTS=""
 
SPRING_PROFILES_ACTIV="-Dspring.profiles.active=配置文件变量名称"
#SPRING_PROFILES_ACTIV=""
LOG_DIR=$CUR_SHELL_DIR/logs
LOG_PATH=$LOG_DIR/${JAR_NAME%..log
 
echo_help()
{
    echo -e "syntax: sh $CUR_SHELL_NAME start|stop"
}
 
if [ -z $1 ];then
    echo_help
    exit 1
fi
 
if [ ! -d "$LOG_DIR" ];then
    mkdir "$LOG_DIR"
fi
 
if [ ! -f "$LOG_PATH" ];then
    touch "$LOG_DIR"
fi
 
if [ "$1" == "start" ];then
 
    # check server
    PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`
    if [ -n "$PIDS" ]; then
        echo -e "ERROR: The $JAR_NAME already started and the PID is ${PIDS}."
        exit 1
    fi
 
    echo "Starting the $JAR_NAME..."
 
    # start
    nohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 &
 
    COUNT=0
    while [ $COUNT -lt 1 ]; do
        sleep 1
        COUNT=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}' | wc -l`
        if [ $COUNT -gt 0 ]; then
            break
        fi
    done
    PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}'`
    echo "${JAR_NAME} Started and the PID is ${PIDS}."
    echo "You can check the log file in ${LOG_PATH} for details."
 
elif [ "$1" == "stop" ];then
 
    PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`
    if [ -z "$PIDS" ]; then
        echo "ERROR:The $JAR_NAME does not started!"
        exit 1
    fi
 
    echo -e "Stopping the $JAR_NAME..."
 
    for PID in $PIDS; do
        kill $PID > /dev/null 2>&1
    done
 
    COUNT=0
    while [ $COUNT -lt 1 ]; do
        sleep 1
        COUNT=1
        for PID in $PIDS ; do
            PID_EXIST=`ps --no-heading -p $PID`
            if [ -n "$PID_EXIST" ]; then
                COUNT=0
                break
            fi
        done
    done
 
    echo -e "${JAR_NAME} Stopped and the PID is ${PIDS}."
else
    echo_help
    exit 1
fi
View Code

修改可执行权限 

chmod 755 eurekaserver.sh
启动Eureka Server  - ./eurekaserver.sh start
关闭Eureka Server  - ./eurekaserver.sh stop

 

posted @ 2019-06-15 17:39  华格瑞沙  阅读(409)  评论(0编辑  收藏  举报