注册中心
注册中心的构成
Eureka注册
Eureka获取注册表信息
# 是否允许获取注册表信息
eureka.client.fetch-registry=true
# client定期更新本地缓存的时间
eureka.client.registry-fetch-interval-seconds=30
Eureka续约
Eureka Server宕机了,服务之间还可以相互调用么
Eureka 配置
package com.xjm.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @EnableEurekaServer 开启EurekaServer的功能
*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
配置文件
# 服务名
spring.application.name=eureka
# 端口号
server.port=1111
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=false
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=false
注册中心UI的说明
Eureka为开发者提供了一个UI界面进行服务健康监控.
开启健康检查
eureka.client.healthcheck.enabled=true
Eureka集群的搭建
- 为什么需要集群呢?
- 修改hosts文件
找到你的hosts文件,添加上这句
## 当访问eurekaA、eurekaB的时候,
## DNS会解析到120.0.0.1这个ip地址
127.0.0.1 eurekaA eurekaB
- 相互注册
eurekaA配置文件
# 服务名
spring.application.name=eureka
# 端口号
server.port=1111
# host名字
eureka.instance.hostname=eurekaA
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=true
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=true
# 将A注册到B中,如果需要增加身份验证,那么可以使用以下形式:
# http://user:password@localhost:port/eureka
eureka.client.service-url.defaultZone=http://eurekaB:1112/eureka
eurekaB配置文件
# 服务名
spring.application.name=eureka
# 端口号
server.port=1112
# host名字
eureka.instance.hostname=eurekaB
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=true
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=true
# 将B注册到A中
eureka.client.service-url.defaultZone=http://eurekaA:1111/eureka
打包部署
使用Maven对项目进行打包,注意打成jar包
可以看到,在target目录下已经产生了jar包
最后,我们通过spring.profiles.active
来指定当前程序使用什么配置文件
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=a
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=b
可以看到,集群环境已经成功搭建起来了
Eureka的高可用性
Eureka自我保护
server:
#测试时关闭自我保护机制,保证不可用服务及时剔除
enable-self-preservation: false
#间隔10秒剔除
eviction-interval-timer-in-ms: 10000