目录

一、前言:

二、创建Eureka Server

三、调整7001端口注册中心

四、调整服务提供者的配置文件:

五、总结


一、前言:

在旧版本的时候,已经讲解过如何搭建Eureka注册中心集群,小伙伴们可以参考:https://blog.csdn.net/Weixiaohuai/article/details/82499345进行学习。

版本说明:

SpringBoot:2.2.2.RELEASE

SpringCloud:Hoxton.SR1

本文主要搭建Spring Cloud Eureka服务注册中心(多节点),注意,本文所使用的的项目是基于上一节单节点进行搭建的。

二、创建Eureka Server

上一篇文章我们已经创建了端口号为7001的服务注册中心,这里我们再创建一个7002端口的注册中心,简单一点,组成两个节点的Eureka集群。

【a】pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud2020</artifactId><groupId>com.wsh.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springcloud-eureka-server7002</artifactId><dependencies><!--eureka-server--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.wsh.springcloud</groupId><artifactId>springcloud-api-commons</artifactId><version>${project.version}</version></dependency><!--boot web actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--一般通用配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies></project>

【b】application.yml

server:port: 7002
spring:application:name: springcloud-eureka-server  #应用名称
eureka:instance:hostname: springcloud-eureka7002.com  #eureka服务端的实例名称client:fetch-registry: true    #false表示不需要去检索服务实例register-with-eureka: true   #false表示不向注册中心注册自己service-url:defaultZone: http://springcloud-eureka7001.com:7001/eureka/

注意点:这里instance.name尽量不要指定为localhost。

【c】启动类加上@EnableEurekaServer注解,开启Eureka服务发现的功能

package com.wsh.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/*** @Description Eureka服务注册中心* @Date 2020/7/26 8:55* @Author weishihuai* 说明: Eureka Server的高可用实际上就是将自己做为服务向其他服务注册中心注册自己。只要有一条边将节点连接,就可以进行信息传播与同步。可以采用两两注册的方式实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现*/
@SpringBootApplication
//@EnableEurekaServer: 开启Eureka服务注册和发现功能(服务端)
@EnableEurekaServer
public class SpringCloudEurekaServiceApplication7002 {public static void main(String[] args) {SpringApplication.run(SpringCloudEurekaServiceApplication7002.class, args);}
}

【d】修改C:\Windows\System32\drivers\etc文件下的hosts文件,加入上面配置文件中的域名映射:

127.0.0.1 springcloud-eureka7001.com
127.0.0.1 springcloud-eureka7002.com

三、调整7001端口注册中心

主要修改application.yml配置文件:

server:port: 7001
spring:application:name: springcloud-eureka-server  #应用名称
eureka:instance:hostname: springcloud-eureka7001.com  #eureka服务端的实例名称client:fetch-registry: true    #false表示不需要去检索服务实例register-with-eureka: true   #false表示不向注册中心注册自己service-url:defaultZone: http://springcloud-eureka7002.com:7002/eureka/

如上配置,可见,在7001的注册中心,指定的eureka.client.service-utl.defaultZone的地址为7002的eureka地址,在7002上面,指定的eureka.client.service-utl.defaultZone的地址为7001的eureka地址。

  • 小总结:Eureka Server集群搭建的关键点就是:Eureka两两相互注册,互相观望

四、调整服务提供者的配置文件:

server:port: 8001    #指定服务端口号
spring:application:name: springcloud-payment-service  #指定服务名称datasource:type: com.alibaba.druid.pool.DruidDataSource          # 当前数据源操作类型driver-class-name: com.mysql.jdbc.Driver             # mysql驱动包&useSSL=falseurl: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=utf-8  #数据库地址username: root  #数据库用户名password: root  #数据库用户密码
mybatis:mapperLocations: classpath:mapper/*.xml   #mapper.xml文件扫描位置type-aliases-package: com.wsh.springcloud.entity    # 所有Entity别名类所在包
eureka:client:register-with-eureka: true  #注册到Eureka注册中心fetch-registry: true  #开启检索服务service-url:
#      defaultZone: http://localhost:7001/eureka/    #单机版Eureka注册中心defaultZone: http://springcloud-eureka7001.com:7001/eureka/,http://springcloud-eureka7002.com:7002/eureka/   #集群版Eureka注册中心

注意到,这里指定的defaultZone为:http://springcloud-eureka7001.com:7001/eureka/,http://springcloud-eureka7002.com:7002/eureka/,即同时注册到两个EurekaServer上面。当然也可以只指定注册到任意一个,因为2个注册中心组成了集群,eureka客户端通过springcloud-eureka7001.com同步给了与之互相注册的springcloud-eureka7002.com。

  • 两两注册的方式可以实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现

下面我们依次启动各个微服务,启动完成之后,浏览器访问http://springcloud-eureka7001.com:7001/和http://springcloud-eureka7002.com:7002/,如下图,可以看到服务注册中心相互进行了注册,并且都在available-replicas可用分片中。

 并且我们使用postman测试,访问http://localhost:80/consumer/payment/get/3,查看返回结果:

可见,接口正常返回数据,至此,Eureka Server集群搭建完成,有兴趣的小伙伴可以尝试停掉某个Eureka Server,然后继续请求接口,看下单个节点down掉是否会影响其他微服务正常使用。

五、总结

a. 两两注册的方式可以实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现。

b. 首先需要注意必须开启服务注册中心的检索服务、注册自身服务的功能,否则会出现多节点的注册中心都不可用,全部服务都会出现在unavailable-replicas不可用分片中。

#要么不写,要么必须指定为true
eureka:client:fetch-registry: true #是否检索服务register-with-eureka: true #表示向Eureka注册自身服务

c.  spring.application.name必须相同,否则也会出现注册中心不能高可用,出现在unavailable-replicas不可用分片中。

相关项目的代码我已经放在Gitee上,有需要的小伙伴可以去拉取进行学习:https://gitee.com/weixiaohuai/springcloud_Hoxton

以上就是集群版本的Eureka服务注册中心搭建的详细过程,由于笔者水平有限,如有不对之处,还请小伙伴们指正,相互学习,一起进步。

【Hoxton.SR1版本】Spring Cloud Eureka服务注册中心集群搭建相关推荐

  1. eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心

    Sping boot Eureka是服务中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等.Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装. 在du ...

  2. eureka服务注册中心集群模式创建

    Eureka组件是springcloud提供的服务注册与发现中心组件 这里创建Eureka server 端的一个集群环境 Eureka服务端运行依赖于spring工程,其集群环境搭建,需要创建spr ...

  3. 如何优化Spring Cloud微服务注册中心架构?

    作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...

  4. spring cloud eureka服务注册和调用

    SPRING INITIALIZR构建工程 spring boot 可通过SPRING INITIALIZR构建项目 访问SPRING INITIALIZR官网,填写项目相关信息后,生成项目. 将下载 ...

  5. spring cloud搭建_Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  6. 【SpringCloud】三、Nacos服务注册+配置管理+集群搭建

    文章目录 一.认识Nacos 1.安装 2.服务注册和发现 3.服务分级存储模型 4.负载均衡策略--NacosRule 5.服务实例的权重设置 5.环境隔离namespace 6.Eureka和Na ...

  7. 微服务注册发现集群搭建——Registrator + Consul + Consul-template + nginx

    在互联网应用领域,服务的动态性需求十分常见,这就对服务的自动发现和可动态扩展提出了很高的要求. 微服务系统动辄上万个服务,而且还要动态伸缩.以人工写好的IP.Port 硬编码脚本的方式无法做到大规模自 ...

  8. Consul 注册中心集群搭建

    简介 之前公司一直用的是Eureka 1.X版本,但是自从SpringBoot升级到2.X版本后Eureka团队对外宣布不再开源且Eureka 2.X版本不在维护,这就一下子懵逼了,开始寻找Eurek ...

  9. Nacos注册中心集群搭建和AP/CP模式切换

    Nacos集群启动后通过选举推出Matser主节点和Slave从节点.但是Nacos 集群默认是AP模式,即虽然有主从节点之分,但是在恢复模式选举过程中仍可对外提供服务,不影响新服务注册.因节点宕机而 ...

  10. spring cloud微服务注册中心EurekaServer

    注册中心EurekaServer pom文件: <?xml version="1.0" encoding="UTF-8"?> <project ...

最新文章

  1. 紧急更新下降难度,《王者荣耀》绝悟 AI 难倒一片玩家
  2. 如何利用 KLEE 符号执行引擎挖掘软件漏洞
  3. 免费!!3天,吃透JVM!(限时领)
  4. 创建采购申请---BAPI_REQUISITION_CREATE
  5. mysql 插入汉字异常: Incorrect string value: '\xE8\xB0\xA2\xE9\x9D\x99' for column 'uname' at row 1...
  6. AudioContext
  7. python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
  8. integer超出范围_BigInteger:可以让超过Integer范围内的数据进行运算
  9. seaborn—seaborn.distplot绘制直方图和连续密度统计
  10. 寒流来袭·《求职初体验》
  11. CentOS7 安装jdk8教程
  12. ubuntu 11.10 安装RTX 腾讯通
  13. Matlab2017a许可证问题:一直提示激活
  14. 收集的tracker
  15. 微型计算机温度控制系统,单片机实现PC机温度控制系统方案
  16. Sql Server备份时提示:备份文件不可用,原先扇区为512,现在为4096
  17. #来陀螺问答,问大V#交易所专场优质问答精选
  18. STM32F429内部FLASH读写擦除操作流程和寄存器配置要点
  19. 计算机四级数据工程师题库,全国计算机等级考试四级数据库系统工程师练习题...
  20. 图像处理特征不变算子系列之Moravec算子(一)

热门文章

  1. 四数之和 leetcode
  2. 332.重新安排行程
  3. 深度神经网络的正则化
  4. 引用的基本概念与用法
  5. 再谈KMP/BM算法(II)
  6. 2015-11-30 20:59:08之自力更生
  7. 【DL小结5】Transformer模型与self attention
  8. 【迅速上手】Python 画图 —— 柱状图
  9. 【POJ 3279】【开关问题】Fliptile【暑期 No.5】
  10. 武汉理工计算机专考研专业课,2017武汉理工大学考研计算机专业课真题