Eureka是spring cloud只一个非常重要的组件,注册中心,也叫服务发现。功能定位类似于dubbo中的zookeeper。而Eureka和zookeeper又有所不同,Eureka强调的是CAP理论中的AP,zookeeper强调的是CP。

这里我们将要创建两个Eureka的注册中心,两个注册中心相互注册

Eureka的配置如下

pom依赖如下

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>cn.itcast.eureka</groupId><artifactId>itcast-eureka</artifactId><version>0.0.1-SNAPSHOT</version><name>itcast-eureka</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Hoxton.SR3</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

yml配置

server:port: 10086
spring:application:name: itcast-eurekaeureka:client:service-url:defaultZone: http://localhost:10087/eureka/server:eviction-interval-timer-in-ms: 5000 #剔除无效链接的间隔时间enable-self-preservation: false #关闭自我保护状态

启动类

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@EnableEurekaServer  //启动eureka服务端
public class ItcastEurekaApplication {public static void main(String[] args) {SpringApplication.run(ItcastEurekaApplication.class, args);}}

然后启动项目,等到项目启动后,我们在按照上述的配置重新在建立一个项目,修改yml中的配置即可

需要修改的yml配置如下:

server:port: 10087
spring:application:name: itcast-eurekaeureka:client:service-url:defaultZone: http://localhost:10086/eureka/server:eviction-interval-timer-in-ms: 5000 #剔除无效链接的间隔时间enable-self-preservation: false #关闭自我保护状态

在我的上一篇博客中,写了注册中心的客户端可服务端,并将它们注册给了端口为10086的注册中心,链接如下:

https://blog.csdn.net/wangyunzhao007/article/details/105776190

相互注册

等到两个注册中心启动后,并且将服务端和客户端都启动后,我们可以在浏览器输入localhost:10086,还有localhost:10087

效果如下:

10087

10086

如上可知,我虽然只把服务端和客户端注册给10086,但是10087也获取了。同样的我们也可以将服务同时注册给多个注册中心,yml配置如下:

server:port: 80
spring:application:name: service-consumer
eureka:client:service-url:defaultZone: http://localhost:10086/eureka/,http://localhost:10087/eureka/registry-fetch-interval-seconds: 5fetch-registry: true  #开启拉取服务

注册中心也可以同样如此注册,如果有1,2,3,4,5个注册中心,我们可以把1注册给2,3,4,5,其他也是如此,全部注册给其他注册中心。

其他方式注册

也可以把1注册给2,2注册给3,3注册给4,4注册给5,5再注册给1,形成闭环。

但是由此产生了传递注册,如果中间有个服务宕机,后边的服务就拿不到之前的注册,现在在建立一个eureka,端口为10088,现在就有了三个eureka,我们把86注册给87,把87注册给88,把88再注册给86,然后还有一个上一篇博客中的注册中心客户端和服务端注册给86,当全部启动时,效果如下:

10086:

10087

10088

由三个图可知,只有注册过得服务才能拿到,如果存在传递的注册关系,是拿不到被注册的服务的,就好像注册在86的服务端和客户端,由于86注册在87,所以87拿得到。值得注意得是87虽然也注册给了88,但是88并没有拿到86的。

【SpringCloud】高可用Eureka相关推荐

  1. 高可用Eureka注册中心配置说明(双机部署)

    目  录 1. 高可用EureKa注册中心示意图 2. Eureka实例相互注册配置 3. 微服务注册到Eureka配置 4. 启动步骤及配置成功检查 5. 说明事项 1. 高可用EureKa注册中心 ...

  2. spring-cloud开发微服务笔记(二):高可用Eureka注册中心的搭建与RestTemplate和Fengin客户端调用微服务示例

    引言:这一篇博客是将上一篇spring-cloud-eureka-server的单机模式改为集群模式,体现eureka的高可用特性.生产环境无论是Eureka注册中心还是Client客户端大多是部署在 ...

  3. springcloud高可用方案

    1. 场景描述 公司在规划后续可能会做中台服务,考虑用微服务的方案,让用springcloud部署个简单的高可用Demo. 2. 解决方案 2.1 方案说明 demo用了5台虚拟机: (1)1台gat ...

  4. 3、Spring Cloud - Eureka(高可用Eureka Server集群)

    在实际的项目中,可能有几十个或者几百个的微服务实例,这时 Eureka Server 承担了非 常高的负载.由于 Eureka Server 在微服务架构中有着举足重轻的作用,所以需要对 Eureka ...

  5. 配置高可用Eureka Server遇到的神坑:无法注册服务

    今天在进行高可用的Eureka Server注册中心的配置时,遇到一个神坑. 拓扑图 废话不多说,直接上拓扑图: Eureka Server配置 pom.xml: <dependency> ...

  6. springcloud高可用服务器集群搭建

    服务器健壮是非常重要的, 但是有很多种原因可能会导致服务注册中心宕机,如果宕机就会有一些灾难性的问题出现,所以保证服务注册中心处于活着运行状态显得尤为重要!!! 我们必须保证,哪怕某些服务器宕机了我们 ...

  7. springcloud 高可用的服务注册中心

    https://blog.csdn.net/forezp/article/details/81041101 上面是方老师的博客,看liuyan也有好多同学不是很清楚,这里自己也记录一下具体的做法. 1 ...

  8. 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下

    2019独角兽企业重金招聘Python工程师标准>>> 前言 上一章节,讲解了在单机模式下的服务注册与发现的相关知识点及简单示例.而在实际生产或者在这种微服务架构的分布式环境中,需要 ...

  9. springcloud之Eureka高可用和用户认证

    Eureka进阶 一.Eureka Server的高可用 因为单节点Eureka Server并不适合线上生产环境,Eureka Client会定时连接Eureka Server,获取服务注册列表中到 ...

最新文章

  1. 服务器和芯片有什么区别,物联网模块和芯片的区别
  2. 王者荣耀故事站小程序源码/含vue后台
  3. cups支持的打印机列表_在Mac上怎样更新打印机软件?
  4. addEventListener事件监听传递参数
  5. 129.求根到叶子节点数字之和
  6. 谈谈数字货币交易系统的发展
  7. 开箱即用的SSH攻击字典收集工具
  8. 人机工程学产品设计案例_【设计案例】一组电子产品设计的合辑
  9. 一种考虑时空关联的深度学习短时交通流预测方法
  10. RINEX3文件中的toc,toe,IODE区分和了解
  11. 云刷工具q币android版,交流电app下载2021-交流电交友手机版v3.2.4最新版-游吧乐下载...
  12. 美国TJX公司 - MBA智库百科
  13. twitter_关于Twitter和激进化的警告
  14. trivy【1】漏洞扫描工具安装
  15. 【C语言】计算日期差
  16. 【华为云】磁盘挂载操作
  17. 【Python 跟书学习笔记】
  18. 北航计算机学院编译,北航计算机学院编译习题讲解.pdf
  19. 电路设计学习一:DAC/ADC原理
  20. 对字符串进行一个顺序排列

热门文章

  1. windbg-!process显示进程
  2. VMProtect 与 ASProtect 在VC中的SDK编程
  3. CButtonST的用法详解!
  4. 动态链接库dll,静态链接库lib, 导入库lib
  5. ICA--独立成分分析(Independent Component Analysis)
  6. 可延迟函数、内核微线程以及工作队列
  7. NeHe教程Qt实现——lesson10
  8. 内核同步机制——互斥量
  9. MySQL jfinal 生成数据_JFinal Web开发学习(四)数据库连接与自动生成model
  10. mysql1033错误存储引擎_【Mysql问题集锦(1)】mysql不能使用innodb存储引擎