注册中心——eureka
1、注册中心服务端配置:
pom中添加依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
application.yml
eureka
2、注册中心客户端注解:
pom中添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml
spring
3、消费者配置
控制层调用:
private final String REST_URL_PREFIX = "http://EUREKA-PRODUCER";
3、eureka自我保护机制
某时刻某一个微服务不可用了,erueka不会立刻清理,依旧对该微服务的信息进行保存。
在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时,该Eureka Server节点就会自动退出自我保护模式。它的设计哲学就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。
禁用自我保护机制: eureka.server.enable-self-preservation=false
4、集群配置
4.1 注册服务端配置
server
4.2 注册客户端配置
server
Zookeeper与Eureka的对比
1、传统的ACID:
A | Atomicity | 原子性 |
---|---|---|
C | Consistency | 一致性 |
I | Isolation | 独立性 |
D | Durability | 持久性 |
C | Consistency | 强一致性 |
---|---|---|
A | Availability | 可用性 |
P | Partition tolerance | 分区容错性 |
CAP三进二:现在分布式存储系统最多只能同时满足三个中的两个,而分区容错性是必须要实现的,因此我们只能在一致性与可用性之间做权衡
3、
zookeeper保证的是CP:leader瘫痪是需要30~120s的时间重新选举,期间无法使用注册服务。
Eureka则是AP:各节点都是平等的,部分节点不可用不会导致集群瘫痪。