SpringCloud——Eureka(Server、Client、Instance端配置讲解、构建Eureka-Server集群)03

Eureka常用配置文件设置

理解

在这里插入图片描述

Server端、Instance端配置讲解

eureka的配置分为三类 Server Client 实例的
注意:yml文件中最好不好添加中文注释,容易报错,解决办法就是删除所有中文注释。
实例续约时间也是服务端续约时间,因为service端既是服务端,又是客户端,实力续约时间一定要小于服务端的驱逐时间区间的时间。

server: 
	port: 8761 
spring: 
	application: 
		name: eureka-server 
eureka:
  server:
    eviction-interval-timer-in-ms: 10000 #evication翻译驱逐,interval翻译区间,记为驱逐时间区间
    renewal-percent-threshold: 0.85 #renewal翻译为续期,记为续期百分比
  instance:
    instance-id:  ${eureka.instance.hostname}:${spring.application.name}:${server.port} #主机名:应用名:端口名
    hostname: localhost
    prefer-ip-address: true #以ip的形式显示具体的服务信息
    lease-renewal-interval-in-seconds: 5  #服务实例续期时间间隔

Client端配置讲解

server:
  port: 8080
spring:
  application:
    name: eureka-client-a

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
    register-with-eureka: true #可以不玩eureka-server注册
    fetch-registry: true #应用是否拉取服务列表到本地
    registry-fetch-interval-seconds: 10 #为了缓解服务列表的藏独问题 时间越短,脏读越少
  instance:
    hostname: localhost
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    lease-renewal-interval-in-seconds: 10

构建高可用的Eureka-Server集群

理论

去中心化的集群
sever端既是服务端也是客户端,所以可以作为客户端注册在别的服务端里面,这样就可以拉取别的服务端的服务列表,这样两两注册,互相守望,即可实现高可用性。
在这里插入图片描述

搭建

创建3个Server端,修改启动名,开启服务端功能
在这里插入图片描述写第一个Server端配置

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka,http://localhost:8763/eureka
  instance:
    instance-id:  ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    hostname: localhost
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5

第二个配置

server:
  port: 8762
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka,http://localhost:8763/eureka
  instance:
    instance-id:  ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    hostname: localhost
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5

第三个配置

server:
  port: 8763
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka,http://localhost:8761/eureka
  instance:
    instance-id:  ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    hostname: localhost
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5

此处出现问题,A端有3个注册信息,BC端注册信息都少于3个,不自己注册自己,目前猜测是由于服务端更新有延迟,将BC端停止后在启动即可。

在这里插入图片描述

  • 注意,此时并不是集群,因为ip地址相同,系统会默认为副本
    解决方法:修改hosts文件,骗eureka我们用了三台机器
    在这里插入图片描述在这里插入图片描述分别改yml文件中的host以及defaultZone,例如
server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      defaultZone: http://peer2:8762/eureka,http://peer3:8763/eureka
    fetch-registry: true
    register-with-eureka: true
  server:
    eviction-interval-timer-in-ms: 90000
  instance:
    instance-id:  ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    hostname: peer1
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 90

在这里插入图片描述其他同样改动,然后启动

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

测试

使用ClientA进行测试,对Peer1服务端进行注册
修改yml文件

server:
  port: 8080
spring:
  application:
    name: eureka-client-a

eureka:
  client:
    service-url:
      defaultZone: http://peer1:8761/eureka
    register-with-eureka: true #可以不玩eureka-server注册
    fetch-registry: true #应用是否拉取服务列表到本地
    registry-fetch-interval-seconds: 10 #为了缓解服务列表的藏独问题 时间越短,脏读越少
  instance:
    hostname: peer1
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    lease-renewal-interval-in-seconds: 10

在这里插入图片描述可以发现,B服务端和C服务端都出现了该应用注册信息
在这里插入图片描述

集群配置的终极方案

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      defaultZone: http://peer3:8763/eureka,http://peer2:8762/eureka,http://peer1:8761/eureka
    fetch-registry: true
    register-with-eureka: true
  server:
    eviction-interval-timer-in-ms: 90000
  instance:
    instance-id:  ${spring.application.name}:${server.port}
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 90


这样只需要改端口即可,使用IDEA复制服务端,更改端口即可快速创建多个服务端

在这里插入图片描述在这里插入图片描述在这里插入图片描述注意是–server.port

在这里插入图片描述
同时更改客户端配置文件

在这里插入图片描述

server:
  port: 8080
spring:
  application:
    name: eureka-client-a

eureka:
  client:
    service-url:
      defaultZone: http://peer1:8761/eureka,http://peer2:8762/eureka,http://peer3:8763/eureka
    register-with-eureka: true #可以不玩eureka-server注册
    fetch-registry: true #应用是否拉取服务列表到本地
    registry-fetch-interval-seconds: 10 #为了缓解服务列表的藏独问题 时间越短,脏读越少
  instance:
    hostname: peer1
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    lease-renewal-interval-in-seconds: 10

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值