一.SpringCloudEureka简介
Spring-Cloud Euraka是Spring Cloud系列中一个组件,它是对Netflix中的开源框架Euraka的集成,用于服务注册和发现。类似 Zookeeper、Consul等。
Eureka由多个instance(服务实例)组成,实例大体分为:Eureka Server和Eureka Client。
在实际项目中Eureka Clienth可细分为Service Provider(服务提供者)和Service Consumer(服务消费者)。
- Eureka Server 提供服务注册和发现
- Service Provider 服务提供方,将自身服务注册到Eureka,提供服务。
- Service Consumer服务消费方,从Eureka获取注册服务列表,消费服务。
1.Eureka与zk的区别
在谈二者区别前先要了解CAP理论,详细可参考:http://www.ruanyifeng.com/blog/2018/07/cap.html
这里简单介绍下,CAP是一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance 类似于多机备份)
- zk是CP,突出分布式一致性,对zk每次的请求都保证一致性的结果,但无法保证可用性,当zk正在选举时,zk不可提供服务。
- Eureka 是AP,突出高可用可伸缩服务,可保证服务可提供服务,但无法保证每次请求的数据返回一致。
二.搭建Eureka注册中心
1.配置pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- 2.3.8版本boot支持cloud Hoxton.x 版本,更高的boot需要cloud Hoxton 以上才可 -->
<version>2.3.8.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<!-- 2.3.8版本boot支持cloud Hoxton.x 版本,更高的boot需要cloud Hoxton 以上才可 ,详情参考spring.io -->
<version>Hoxton.SR11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- jar或war包名称 -->
<finalName>springcloud-eureka-server</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定主入口 -->
<mainClass>com.example.springcloud.eureka.EurekaServerApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
2.配置application.properties
# 应用名称
spring.application.name=eureka-server
# 配置动态切换
spring.profiles.active=dev
# 服务端口
server.port=8901
# eureka的主机名称
eureka.instance.hostname=eureka1
# 注册中心实例ID
eureka.instance.instance-id=${spring.application.name}:${eureka.instance.hostname}:${server.port}
# 客户端配置-注册中心访问地址, eureka1是在Hosts配置的映射,替代域名的作用。
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
# 客户端配置-是否将自身注册到eureka服务
eureka.client.register-with-eureka=true
3.添加Eureka启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer // 启用Eureka注册中心
@SpringBootApplication // springboot 核心配置
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
三、启动测试
浏览器访问:http://eureka1:8901/ 显示如下: 
本文介绍了Spring Cloud Eureka作为服务注册与发现的组件,对比了它与Zookeeper的区别,重点在于Eureka遵循CAP中的AP原则,确保高可用性。搭建Eureka注册中心的步骤包括配置pom.xml、application.properties以及创建启动类。完成配置后,通过浏览器可以访问Eureka服务器的界面查看服务状态。
1万+

被折叠的 条评论
为什么被折叠?



