Eureka 是 Netflix 开源的一个服务注册和发现工具,被广泛应用于微服务架构中。作为微服务架构中的核心组件之一,Eureka 提供了服务注册、发现和失效剔除等功能,帮助构建弹性、高可用的分布式系统。在现代软件开发领域,使用 Eureka 可以有效地管理和监控服务实例,实现服务之间的通信和协同工作。
关于 Eureka 的相关博文涵盖了从入门指南到高级技术实践的内容,包括如何搭建和配置 Eureka 服务器、如何集成 Eureka 客户端到应用程序中、如何处理服务剔除和自保策略等方面的内容。通过深入学习 Eureka,开发人员可以更好地理解微服务架构的设计原则,并掌握构建可靠、可伸缩的分布式系统的关键技能。
概述
介绍
Spring Cloud Eureka 是Netflix 开发的注册发现组件,本身是一个基于 REST 的服务。 提供注册与发现,同时还提供了负载均衡、故障转移等能力
3个角色
服务中心:提供服务的注册和发现功能,即实现服务的治理
服务提供者:将自身服务注册到Eureka Server中,以便“服务消费者”能够通过服务器端提供的 注册服务列表 来调用它
服务消费者:从 Eureka Server 获取 已注册的服务列表,从而消费服务。
相比于zookeeper
CAP定理:分区容错性Partition tolerance/ 一致性Consistency /可用性Availability
zookeeper是cp架构,eurka是ap架构 Zookeeper会出现这样一种情况,当Master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。 问题在于,选举leader的时间太长,30~120s,且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。 Eureka看明白了这一点,因此在设计时就优先保证可用性。
服务端
搭建
依赖
<!--eureka server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
application.yml
server:
port: 7001
eureka:
client:
# 是否从Eureka Server获取注册的服务信息
fetch-registry: false