2 服务中心
为避免每次手动启动,将应用打成 war 包(jar)
如此该应用就方便了我们,不需要每次都去手动启动应用,在后台会重启,若想杀死进程直接 kill
3 Eureka Client的使用
@EnableDiscoveryClient注解
这通过META-INF/spring.factories查找DiscoveryClient接口的实现
Discovery Client的实现将在org.springframework.cloud.client.discovery.EnableDiscoveryClient键下的spring.factories中添加一个配置类。
DiscoveryClient实现的示例是Spring Cloud Netflix Eureka,Spring Cloud Consul发现和Spring Cloud Zookeeper发现。
默认情况下,DiscoveryClient的实现将使用远程发现服务器自动注册本地Spring Boot服务器。可以通过在@EnableDiscoveryClient中设置autoRegister=false来禁用此功能。
启动Server, 再启动 Client
因为没有配置注册目标地址信息
之后再次重启,依旧无法注册成功,几经勘察,添加以下依赖后,成功运行,注册到服务器
再指定 client 名字
发现成功注册
此为 client 应用ip 地址
但其实可以自定义
接着点击进入那个链接,URL如下
Eureka保证分布式CAP理论中的AP
有时会发现如下红色警戒!
Eureka看明白了这一点,因此在设计时就优先保证可用性
我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接宕机。也就是说,服务注册功能对可用性的要求要高于一致性!
如果Eureka服务节点在短时间里丢失了大量的心跳连接(可能发生了网络故障),那么这个 Eureka节点会
- 进入“自我保护模式”
但该节点对于新的服务还能提供注册服务, 当网络故障恢复后,这个Eureka节点会退出“自我保护模式” - 同时保留那些“心跳死亡”的服务注册信息不过期
对于“死亡”的仍然保留,以防还有客户端向其发起请求
Eureka的哲学是,同时保留“好数据”与“坏数据”总比丢掉任何数据要更好
- 在开发模式,最好关闭该模式(默认是开启的),注意仅能在开发环境关闭哦!
- 生产环境禁止关闭!!!















