• 搭建集群版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
  • 相关阅读:
    深度谈谈单例模式
    高并发的下的数据库设计
    D3开发中的资料整理
    IIS配置过程中的常见问题
    css3常用动画+动画库
    非常实用的10款网站数据实时分析工具
    Jquery中AJAX参数详细介绍
    首次使用Vue开发
    js 鼠标拖拽元素
    Oracle涂抹oracle学习笔记第10章Data Guard说,我就是备份
  • 原文地址:https://www.cnblogs.com/yangjiming/p/11028287.html
Copyright © 2020-2023  润新知