Springcloud eureka搭建高可用集群过程图解

 更新时间:2020年04月20日 14:46:53   作者:知识追寻者  
这篇文章主要介绍了Springcloud eureka搭建高可用集群过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一 前言

eureka作为注册中心,其充当着服务注册与发现功能,加载负载均衡;若在项目运行中eureka挂了,那么整个服务整体都会暂停,所以为服务运行的安全性,有必要搭建eureka集群;当其中一个eureka节点挂了,我们还有另外的节点可用;本篇文章的核心是如何在idea上运行eureka集群,和项目部署;需注意的jdk版本是1.8,高于jdk1.8打包部署会出问题,需要引入其他依赖;

二 eureka-server配置文件改造

之前的配置文件如下,这是单个eureka-server的配置,并不能满足于我们实际项目需求,我们要将其改造成高可用的集群节点模式;

server:
 port: 10086

eureka:
 instance:
  hostname: localhost
 client:
  # 作为server,表示禁止向自己注册
  register-with-eureka: false
  fetch-registry: false
  service-url:
   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

改造配置文件如下,之前的文章中我们了解了eureka的peer to peer 交流机制,我们现在就根据这个原理搭建高可用的eureka集群,在配置文件中可以看见知识追寻者配置了3个peer(peer1,peer2,peer3); 它们的端口分别是10081,10082,10083; peer1,分别向 peer2,peer3注册,peer2则向 peer1,peer3注册,peer3同理;这样就构成了eureka简单的3个节点集群;

spring:
 application:
  name: eureka-server-cluster
---
spring:
 profiles: peer1
server:
 port: 10081
eureka:
 instance:
  hostname: peer1
 client:
  service-url:
   # 向peer2 peer3节点注册自己
   defaultZone: http://peer2:10082/eureka,http://peer3:10083/eureka

---
spring:
 profiles: peer2
server:
 port: 10082
eureka:
 instance:
  hostname: peer2
 client:
  service-url:
   # 向peer1 pee3节点注册自己
   defaultZone: http://peer1:10081/eureka,http://peer3:10083/eureka

---
spring:
 profiles: peer3
server:
 port: 10083
eureka:
 instance:
  hostname: peer3
 client:
  service-url:
   # 向peer1 peer2节点注册自己
   defaultZone: http://peer1:10081/eureka,http://peer2:10082/eureka

三 eureka-client配置文件改造

在之前的基础上多添加了注册server节点 peer2,peer3

server:
 port: 8090

spring:
 application:
  name: eureka-client # 应用名称

eureka:
 client:
  service-url:
   # 服务注册地址
   defaultZone: http://peer1:10081/eureka/,http://peer2:10082/eureka/,http://peer3:10083/eureka/

修改host文件目的是peer对应ip地址,实际项目中 每个peer节点都是一个ip地址;

192.168.0.101 peer1
192.168.0.101 peer2
192.168.0.101 peer3

五 复制启动配置

复制配置如下:点击 cpoy configuration 选项;

进入编辑状态,修改 name 为 EurekaServer(1), 激活的配置文件选项 填 peer1;以此类推,我们复制三个实例; 分别是 EurekaServer(1),EurekaServer(2),EurekaServer(3);分别激活配置 peer2,peer2,peer3;

六 启动 eureka-server

分别启动三个配置实例,图如下;


浏览器输入 http://localhost:10083/ 或者 http://localhost:10082/ 或者 http://localhost:10081/;结果如下,知识追寻者在浏览器输入的 peer3地址,那么 对应的复制的Node 是 peer2,peer1;server有三个;

七 启动 eureka-client

启动eureka client 图如下


刷新浏览器界面,可以看见 client 已经注册到 server;

八 打包部署

进入 eureka-server 工程目录 执行 打包命令 mvn clean package

打开三个命令行分别执行对应的命令,一个cmd一条;

java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer3

pee3 如下

浏览器页面如下:

九 多 profile运行注意事项

如下 配置文件 不写在src/main/resources一个 application 中,而是分为 application-peer1.yml, application-peer2.yml, application-peer3.yml ; 在 idea 的虚拟机参数(VM Options)配置 是
-Dspring.profiles.active=peer1 , -Dspring.profiles.active=peer2 ,-Dspring.profiles.active=peer3;部署方式相同;也可以通过 mvn spring-boot:run -Dspring.profiles.active=peer1 的形式运行;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深入理解Spring Aop的执行顺序

    深入理解Spring Aop的执行顺序

    本文将结合实例代码,介绍Spring Aop的执行顺序,非常具有实用价值,需要的朋友可以参考下
    2021-06-06
  • java Random.nextInt()方法的具体使用

    java Random.nextInt()方法的具体使用

    这篇文章主要介绍了java Random.nextInt()方法的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • java double类型相加精度问题的解决

    java double类型相加精度问题的解决

    这篇文章主要介绍了java double类型相加精度问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Spring中的@PostConstruct注解使用详解

    Spring中的@PostConstruct注解使用详解

    这篇文章主要介绍了Spring中的@PostConstruct注解使用详解,该注解被用来修饰一个非静态的void方法,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次,需要的朋友可以参考下
    2023-10-10
  • 对Netty组件的基本介绍

    对Netty组件的基本介绍

    这篇文章主要介绍了对Netty组件的基本介绍,Netty是基于Java NIO client-server的网络应用框架,使用Netty可以快速开发网络应用,本文涵盖了netty开发中主要的组件的介绍,需要的朋友可以参考下
    2021-06-06
  • Java实现中文算数验证码的实现示例(算数运算+-*/)

    Java实现中文算数验证码的实现示例(算数运算+-*/)

    这篇文章主要介绍了Java实现中文算数验证码的实现示例(算数运算+-*/),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解spring与jdbc整合操作

    详解spring与jdbc整合操作

    这篇文章主要为大家详细介绍了spring与jdbc整合操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • java @Data布尔值boolean的坑及解决

    java @Data布尔值boolean的坑及解决

    本文介绍了在使用Spring框架时,遇到的一个属性命名规则问题,在Spring框架中,如果类的属性名称第一个字母小写,第二个字母大写,那么在调用set方法时,Spring会将属性的后面的字母转换为小写,这种情况下,如果下游消费端调用得到的返回json串
    2024-10-10
  • Java中生成不重复随机数的四种方法举例详解

    Java中生成不重复随机数的四种方法举例详解

    在Java编程中获取随机数是常见的需求,这篇文章主要介绍了Java中生成不重复随机数的四种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • springboot整合webservice使用简单案例总结

    springboot整合webservice使用简单案例总结

    WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,平台等,可以实现不同的语言间的相互调用,下面这篇文章主要给大家介绍了关于springboot整合webservice使用的相关资料,需要的朋友可以参考下
    2024-07-07

最新评论