一、Spring Cloud Eureka简介
注册中心
Zk也是注册中心。
Eureka是Netflix贡献给Spring Cloud的一个框架。Netflix给Spring Cloud 贡献了很多框架。
二、Spring Cloud Eureka和Zookeeper的区别
2.1分布式特征(CAP)
C:数据的一致性(A,B,C里面的数据是一致的)
Zk注重数据的一致性。
Eureka不是很注重数据的一致性。
A:服务的可用性(若ZK集群里面的master挂了怎么办)
在ZK里面,若主机挂了,则zk集群整体不对外提供服务了,需要选一个新的出来(120s)才能继续对外提供服务
Eureka注重服务的可用性,当Eureka集群中有一台活着,它就能对外提供服务。
P:分区的容错性(在集群里面的集群,因为网络原因,机房的原因,可能导致数据不会立马同步)
它在分布式必须需要实现的特性!
Zookeeper注重数据的一致性,CP
Eureka注重服务的可用性AP
2.2 Spring Cloud其他注册中心的选择
Eureka修改了授权协议,之前Eureka Apache2.0的协议,随便用,随便修改
后序的Eureka可能会使用其他授权协议。
Spring Cloud 还有别的注册中心,Consul,阿里巴巴提供Nacos,都能作为注册中心,我们的选择还是很多的。
Spring Cloud Consul
https://spring.io/projects/spring-cloud-consul
Nacos:http://console.nacos.io/nacos/index.html#/login
三、Spring Cloud Eureka快速入门
3.1 搭建Eureka-Server
3.1.1 新建项目
3.1.2 选择依赖
Spring Cloud的版本
通过依赖管理来控制Spring Cloud的依赖
3.1.3 修改配置文件
3.1.4 添加注解
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer //开启注册中心的功能 public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
3.1.5 启动测试
启动测试
先不用管报错
注册中心就搭建完毕了。
3.1.6 错误分析
Eureka-Server不仅提供让别人注册的功能,它也能注册到别人里面
上面的错误是因为Eureka-Server正在注册到一个别人的注册中心上面,此时往自己注册。
Eure可以配置向哪个注册中心注册自己,他有一个默认配置。
观察源码发现,Eureka-server会向一个8761的端口注册自己,我们把我们自己搭建的Eureka-Server修改端口为8761