是什么?
Netflix 在设计Eureka 时遵守的就是AP 原则
cs 架构
Eureka 的自我保护模式:
CAP 理论
作为注册中心Eureka 比zookeeper 好在哪里?
重点:zookeeper 是cp 、Eureka 是AP
Eureka 与zookeeper 作为服务发现的对比文章 http://dockone.io/article/78
Eureka 元数据:
标准元数据: 主机名,ip 地址,端口号,状态页,健康检查
自定义元数据: 在配置文件中使用eureka.instance.metadata-map ,map 内容可以随意写
在项目中可以注入DiscoveryClient 来查看全部的元数据
EurekaServer 的Rest 端点:
非JVM 的微服务可使用这些REST 端点操作Eureka , 从而实现服务的注册于发现
Eureka多网卡下的ip 选择:
如果某个服务器有多个网卡但是只有某个网卡能够访问服务器,如果注册到eureka 的是不可访问服务器的网卡,则造成服务器是无法访问的,springcloud 提供了按需要选择ip 的能力,配置如下:
1. 忽略指定名称的网卡: 例如:
spring:
cloud:
inetutils:
ignored-interfaces:
- docker0
- veth.*
eureka:
instance:
prefer-ip-address:true
这样就可以忽略docker0 网卡以及所有以veth 开头的网卡
2. 使用正则表达式,指定使用的网络地址,例如:
spring:
cloud:
inetutils:
preferreNetWorks:
- 192.168
- 10.0
eureka:
instance:
prefer-ip-address: true
3. 使用站点本地地址
spring:
cloud:
inetutils:
useOnlySiteLocalInterfaces: true
eureka:
instance:
prefer--ip-address: true
这样就可以强制使用站点本地地址
4. 手动指定IP 地址 在某些极端的情况下,可以手动指定注册到Eureka Server 的微服务IP
eureka:
instance:
prefer-ip-address: true
ip-address: 127.0.0.1
Eureka 健康状况: 服务的健康状况有以下几种情况: UP , DOWN , STARTING , OUT_OF_SERVICE, UNKNOW,只有标记了UP 的微服务才会被请求。Eureka server 和Eureka client 之间用心跳来检查健康状况,服务与客户端保持心跳正常就会显示服务为UP 状态,但是保持这种状态并不代表服务是健康的。
(感谢周立 SpringCloud 相关书籍)