高可用架构
基本原则
2、可靠性交迭
3、故障探测
可用性比率计算
通过时间来计算(一年或者一月)
比如一年99.99%:
可用时间:365 * 24 * 3600 * 99.99%
不可用时间:365 * 24 * 3600 * 0.01%=3153.6秒<1小时
单台机器可用率99%,不可用就为1%。要想服务提升到万分之一,就加一台机器,不可用就变为1%*1%
Spring cloud Eureka
## Server @EnableEurekaServer
config
### Eureka Server 应用名称
spring.application.name =
### Eureka Server 服务端口
server.port =
### 取消服务器自我注册
eureka.client.register-with-eureka=false
### 不需要检索服务
eureka.client.fetch-registry=false
### Eureka Server 服务 URL,用于客户端注册
eureka.client.serverUrl.defaultZone=http://localhost:${server.port}/eureka
Client @EnableEurekaClient
配置高可用Eureka
1.服务端:只需修改server端口,启动多个Eureka服务端即可
2.客户端:配置eureka.client.serverUrl.defaultZone为多个地址,一逗号分割即可。(注:注册时,会找到第一个可用的server,当server挂掉后,再找下一个可用的server)
彩蛋:配置指定范围随机端口号 ${random.int[7071,7079]}
获取注册信息时间间隔
EurekaClient--->Applications--->Application--->InstanceInfo
application.properties
###调整注册信息的获取周期,默认值30秒
eureka.client.registryFetchIntervalSeconds = 5
实例信息复制时间间隔
具体是客户端信息上报到Eureka服务器时间。
当Eureka客户端应该上报的约频繁,那么Eureka服务器的应用状态管理性能一致性就越高
###客户端信息上报到Eureka服务器周期
instanceInfoReplicationIntervalSeconds = 5
修改应用实例ID格式
eureka.instance.instanceId=${spring.application.name}:${server.port}
实例端点映射
客户端应用实例状态URL修改,默认是/info,(EurekaInstanceConfigBean)
###客户端应用实例状态URL修改
eureka.instance.statusPageUrlPath=/health
Eureka服务器双向可用(复制数据)
既做服务器,也做客户端,
1.打开下面配置
### 取消服务器自我注册
eureka.client.register-with-eureka=ture
### 不需要检索服务
eureka.client.fetch-registry=ture
2.设置注册服务器
eureka.client.serverUrl.defaultZone=http://localhost:${server.port}/eureka
问答
-
为什么要用Eureka?
目前业界比较稳定云计算的开发员中间件,虽然有一些不足,基本上可用
-
spring cloud日志收集