注册中心Eureka
什么是Eureka?
Spring Cloud封装了Netflix下的Eureka模块来实现服务注册和发现。Eureka采用了C-S架构,Eureka Server是注册中心的服务端,作为注册中心。而系统中的其它的微服务模块使用Eureka的客户端连接到Eureka Server(@EnableDiscoveryClient 或@EnableEurekaClient),并且通过维持心跳连接。系统的维护人员可以通过Eureka服务端来监控微服务模块是否正常运行。
在分布式系统中有个著名的CAP理论,CAP代表的是一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。CAP理论指的是在这个理论中最多满足两个特性,一般来讲,基于网络的不稳定性,分布容错是不可避免的,所以我们默认CAP中的P总是成立的。
一致性(Consistency):分布式系统中时刻保持数据一致性;
可用性(Availability):在系统集群的一部分节点宕机后,系统依然能够响应用户的请求;
分区容错性(Partition tolerance):当节点出现一些网络故障时仍能够提供服务;
一致性的强制数据统一要求,必然会导致在更新数据时部分节点处于被锁定状态,此时不可对外提供服务,影响了服务的可用性,反之亦然。因此一致性和可用性不能同时满足。
Eureka保证的是AP,保证的是高可用和分区容错性。至于一致性问题则保证的是最终一致性,并不是时刻都会保证数据一致性;而接下来要讲的另外两种注册中心Consul和Zookeeper则保证的是CP(一致性和分区容错性);
版本
Spring Cloud:Greenwich.RELEASE
Maven环境:3.6.3
Jdk:1.8
实战演练
Eureka服务端
Eureka服务端步骤:
1、导入pom.xml文件需要的依赖(等待片刻~);
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cxk.client</groupId>
<artifactId>sgccplatform-framwork-eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sgccplatform-framwork-eureka</name>
<description>注册中心</description>
<parent>
&