乐趣区

关于spring-cloud:8java-Spring-Cloud企业快速开发架构之SpringCloudSpring-Cloud-Eureka是什么


Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,次要负责实现微服务架构中的服务治理性能。

Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端组件,可能十分不便地将服务注册到 Spring Cloud Eureka 中进行对立治理。

服务治理是微服务架构中必不可少的一部分,阿里开源的 Dubbo 框架就是针对服务治理的。服务治理必须要有一个注册核心,除了用 Eureka 作为注册核心外,咱们还能够应用 Consul、Etcd、Zookeeper 等来作为服务的注册核心。

用过 Dubbo 的读者应该分明,Dubbo 中也有几种注册核心,比方基于 Zookeeper、基于 Redis 等,不过用得最多的还是 Zookeeper 形式。

至于应用哪种形式都是能够的,注册核心无非就是治理所有服务的信息和状态。若用咱们生存中的例子来阐明的话,笔者感觉 12306 网站比拟适合。

首先,12306 网站就好比一个注册核心,顾客就好比调用的客户端,当他们须要坐火车时,就会登录 12306 网站上查问余票,有票就能够购买,而后获取火车的车次、工夫等,最初登程。

程序也是一样,当你须要调用某一个服务的时候,你会先去 Eureka 中去拉取服务列表,查看你调用的服务在不在其中,在的话就拿到服务地址、端口等信息,而后调用。

注册核心带来的益处就是,不须要晓得有多少提供方,你只须要关注注册核心即可,就像顾客不用关怀有多少火车在开行,只须要去 12306 网站上看有没有票就能够了。

为什么 Eureka 比 Zookeeper 更适宜作为注册核心呢?次要是因为 Eureka 是基于 AP 准则构建的,而 ZooKeeper 是基于 CP 准则构建的。

在分布式系统畛域有个驰名的 CAP 定理,即 C 为数据一致性;A 为服务可用性;P 为服务对网络分区故障的容错性。这三个个性在任何分布式系统中都不能同时满足,最多同时满足两个。

Zookeeper 有一个 Leader,而且在这个 Leader 无奈应用的时候通过 Paxos(ZAB)算法选举出一个新的 Leader。这个 Leader 的工作就是保障写数据的时候只向这个 Leader 写入,Leader 会同步信息到其余节点。通过这个操作就能够保证数据的一致性。

总而言之,想要保障 AP 就要用 Eureka,想要保障 CP 就要用 Zookeeper。

Dubbo 中大部分都是基于 Zookeeper 作为注册核心的。Spring Cloud 中当然首选 Eureka。
​​

举荐企业分布式架构源码

退出移动版