- Spring Cloud Netflix
该项目是Spring Cloud的核心子项目,是对Netflix公司一系列开源产品的封装。它为Spring Boot应用提供了自配置的整合,只需要通过一些简单的注解,就可以快速地在Spring Cloud的应用中使用起来。
它主要提供的模块包括:
服务发现注册(Eureka)
客户端负载均衡(Ribbon)
断路器(Hystrix)
智能路由(Zuul)
开源地址:
服务注册和服务发现
调用关系说明:
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址给消费者。
4.服务消费者从提供者地址中调用消费者。如果使用Eureka进行服务注册和发现
服务端添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
2、服务端添加配置
server:
port: 8761 # eureka默认端口
spring:
application:
name: micro-hzb-eureka
Eureka和Zookeeper的对比
4.1.分布式系统的CAP理论
4.2.Zookeeper保证CP4.3.Eureka保证AP
Eureka看明白了这一点,因此在设计时就优先保证可用性。我们可以容忍注册中心返回的是几个分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性要求要高于一致性。
如果Eureka服务节点在短时间丢失了大量的心跳连接(注:可能发生了网络故障),那么这个Eureka节点会进入”自我保护模式”,同事保留那些”心跳死亡”的服务注册信息不过期。4.4.总结
Eureka作为单纯的服务注册中心来说要比Zookeeper更加“专业”,因为注册服务更重要的是可用性,我们可以接受短期内达不到一致性的状况。
当然,这也要看具体的使用场景。