博客
关于我
spring cloud Eureka 的HA 高可用的实现
阅读量:389 次
发布时间:2019-03-05

本文共 2576 字,大约阅读时间需要 8 分钟。

Spring Cloud Eureka 高可用架构部署指南

项目结构概述

本文将介绍如何配置并部署一个基于 Spring Cloud Eureka 的高可用架构(HA)。该架构将基于三个节点(node1、node2、node3)实现服务注册与发现,确保系统的高可用性和自动化容灾能力。


模块化项目结构

项目主要包含以下几个关键模块:

  • POM文件:配置了必要的依赖项,包括 Eureka 服务服务器和相关组件。
  • 启动类:定义了应用程序的主启动类及其相关配置。
  • 资源配置文件:包含了服务的基础配置信息。
  • 应用配置文件:分为公共配置文件和节点特定配置文件,分别定义了每个节点的运行环境参数和服务注册信息。

  • 1. 项目依赖管理

    在项目的 pom.xml 文件中,主要依赖了以下组件:

    org.springframework.cloud
    spring-cloud-starter-eureka-server

    此外,项目还依赖了 Spring Boot 核心组件和相关自动化配置模块。


    2. 应用启动类

    启动类 EurekaHaApp 位于 com.ljf.weifuwu.springcloud.ha.eureka 包下,其代码如下:

    package com.ljf.weifuwu.springcloud.ha.eureka;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublic class EurekaHaApp {    public static void main(String[] args) {        SpringApplication.run(EurekaHaApp.class, args);        System.out.println("EurekaHaApp 高可用启动成功了!!!");    }}

    此启动类标注了 @SpringBootApplication@EnableEurekaServer 两个注解,分别表示启用 Spring Boot 的自动化配置和 Eureka 服务注册中心功能。


    3. 资源配置文件

    资源配置文件位于 resources 目录下,主要用于定义服务的基本运行环境参数和服务注册中心相关配置。


    4. 应用配置文件

    系统采用了基于 YAML 格式的配置文件进行管理,具体包括以下几个文件:

  • application.yml:作为公共配置文件,主要定义了服务的基本信息和运行环境参数。
  • application-nodeX.yml(X 为节点编号):每个节点都有对应的配置文件,定义了节点的特定运行参数和服务注册信息。
  • 公共配置文件 application.yml

    spring:    application:        name: ms-eureka-ha-center        profiles:            active: node1

    节点特定配置文件

    application-node1.yml

    server:    port: 2001eureka:    instance:        hostname: node1    client:        serviceUrl:            defaultZone: http://node2:2002/eureka/,http://node3:2003/eureka/

    application-node2.yml

    server:    port: 2002eureka:    instance:        hostname: node2    client:        serviceUrl:            defaultZone: http://node1:2001/eureka/,http://node3:2003/eureka/

    application-node3.yml

    server:    port: 2003eureka:    instance:        hostname: node3    client:        serviceUrl:            defaultZone: http://node1:2001/eureka/,http://node2:2002/eureka/

    5. 节点配置与启动

    5.1 修改主机名

    在 Windows 系统中,需要修改 C:\Windows\System32\drivers\etc\hosts 文件,将以下映射关系添加到 hosts 文件中:

    node1 localhostnode2 localhostnode3 localhost

    5.2 启动节点

    按照以下顺序依次启动三个节点:

  • EurekaHaApp-node1:启动时可能会出现一些依赖错误,可以暂时忽略。
  • EurekaHaApp-node2:与 node1 同样可能会出现依赖错误,暂时忽略。
  • EurekaHaApp-node3:启动时不会出现错误。

  • 6. 访问验证

    访问节点服务

  • 访问 node1:通过浏览器访问 http://localhost:2001
  • 访问 node2:通过浏览器访问 http://localhost:2002
  • 访问 node3:通过浏览器访问 http://localhost:2003

  • 通过以上步骤,可以完成一个基于 Spring Cloud Eureka 的高可用架构的部署与配置。该架构不仅确保了服务的注册与发现功能,还通过节点之间的互相注册和心跳检测机制,实现了服务的高可用性和容灾能力。

    转载地址:http://pouzz.baihongyu.com/

    你可能感兴趣的文章
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>