SpringCloud 微服务 (四) Eureka 高可用

根据计划好的学习目录 第(一)篇, 在(二),(三)篇以后,本篇记录Eureka的高可用spring

服务注册中心是分布式系统基础部分,我的以为理解基础仍是很重要的服务器

 

服务器挂掉的事件很常见,你们都习惯了,重启就行了,再挂再重启呗app

没有重启解决不了的问题 --- 来自大网管的发言分布式

 

做为吃瓜群众表示不服,下面尝试一下Eureka来解决这些问题ide

 

目前Eureka的server有一个,client也有一个学习

添加一个server B, 让B与server互相注册发现服务,互相交换信息,大箭头是原来的模型,小箭头是高可用的现实 ,若是server挂了,就可让client去找server B,反之也同样,让服务不间断测试

不用急着去复制项目,idea 打开eureka,注册中心(server),url

点击箭头的编辑,进入启动项编辑窗口idea

点击上面图片的小图标,复制一份启动,下面开始设置不一样端口来启动两个eureka服务中心spa

+ 端口设置=8761 EurekaApplication A

而且改服务中心url 指向 8762 yml中设置,而后启动,访问localhost:8761

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka/  #此处再说明一次,本服务做为client,引入url为注册中心地址
    register-with-eureka: false
  server:
    enable-self-preservation: false

以前的client须要启动,测试被发现.

 

+ 端口设置=8762 EurekaApplication B

而且改服务中心url 指向 8761 yml中设置,而后启动,访问localhost:8762

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
    register-with-eureka: false
  server:
    enable-self-preservation: false

8762同样能够发现 myclient 服务

 

client 修改yml文件的defaultZone, 以下: 向A,B都注册,逗号分隔开url

spring:
  application:
    name: myclient

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

 

这时候,上面就能够实现Eureka高可用,不用担忧挂掉其中的一台服务.崩掉了.

仍是要相信总会有奇迹,若是两台都挂掉了,那咱们能够多加个server,好比3个server的时候,相互之间的注册方式,好比加了一个EurekaApplication C

client 方: 只须要在yml配置中的defaultZone: A,B,C 追加一个C的url便可

server A方 : 也在yml配置中的defaultZone: B,C 追加一个C的url便可

server B方 : 也在yml配置中的defaultZone: A,C 追加一个C的url便可

server C方 : 也在yml配置中的defaultZone: A,B 加上A,B的url便可

 

 

若是你们以为3个或更多都发生了奇迹,全挂了,不要紧,还有办法并且很是简单------重启

 

注册中心都是须要配置高可用,集群方式,无论是否是使用Eureka仍是zookeeper,仍是其余组件,保证中心不挂服务就能够不间断

以上大可能是操做实践,熟悉套路,全部的设计构架也好,组件也好,都有着现实的例子,比方说这个注册服务发现,就比如最近办公楼下广告小视频,常常放的什么没有中间商赚差价,什么什么的,你们也应该都听过,意会下就好.

------------------------------------------------------------------

相关文章
相关标签/搜索