Spring Cloud-Eureka
1、什么是服务治理
在传统的RPC远程调用框架中,每个服务与服务之间依赖关系比较复杂,管理起来比较难,所以需要使用服务治理,管理服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
2、服务注册与发现是什么意思?
Eureka
采用了CS
的设计架构,Eureka Server
作为服务注册功能的服务器,它是服务注册红心,而系统中的其他微服务使用Eureka
的客户端连接到Eureka Server
并维持心跳连接。维护人员就可以通过Eureka Server
来监控系统中各个微服务是否正常运行。
在服务注册于发现中,有一个注册中心。当服务器启动的时候,会把自己服务器的信息,像服务器服务地址、通讯地址以别名的方式注册到注册中心。另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC
调用。
RPC远程框架核心设计思想
远程框架的设计思想在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框架中,都有一个注册中心(存放服务地址相关信息(接口地址))。
3、什么时Eureka?
Eureka
作为SpringCloud
的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka
的客户端将其连接到Eureka Service
中,并且保持心跳,这样工作人员可以通过EurekaService
来监控各个微服务是否运行正常。
Eureka两个核心组件
Eureka Server
提供服务注册服务:各个微服务节点通过配置启动后,都会在Eureka Server
中进行注册,这样Eureka Server
中的服务注册表将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观看到;Eureka Client
提供注册中心访问服务:Eureka Client
是一个Java客户端,用于简化Eureka Server
的交互,客户端同时也具备一个内置的、使用轮询(round-robin
)负载算法的负载均衡器。在应用启动后,将会向Eureka Server
发送心跳(默认周期是20秒)。如果Eureka Server
在多个心跳周期内没有接收到某个节点的心跳,Eureka Server
将会从服务注册表中吧这个服务节点移除(默认30秒)。
4、Eureka如何实现高可用?
集群吧,注册多台Eureka
,然后把SpringCloud
服务互相注册,客户端从Eureka
获取信息时,按照Eureka
的顺序来访问。
5、Eureka的自我保护机制?
为了防止Eureka Client
可以正常运行,但是与Eureka Server
网络不通的情况下将注册表信息删除。默认情况下,如果Eureka Service
在一定时间内没有接收到某个微服务的心跳,Eureka Service
会进入自我保护模式,在该模式下Eureka Service
会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka Servic
节点会自动退出自我保护模式。
6、Eureka自我保护机制的作用?
自我保护模式是一种应对网络异常的安全保护措施。他的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的微服务都会保留),也不会盲目注销任何健康的微服务。使用自我保护模式,可以使得Eureka
集群更加健壮和稳定。
7、DiscoveryClient的作用?
可以从注册中心中根据服务别名获取注册的服务器信息。
7、Eureka
和ZooKeeper
都可以提供服务注册与发现的功能,请说说两个的区别?
ZooKeeper
中的节点服务挂了就要选举 在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的, 选举就是改微服务做了集群,必须有一台主其他的都是从;Eureka
各个节点是平等关系,服务器挂了没关系,只要有一台Eureka
就可以保证服务可用,数据都是最新的。 如果查询到的数据并不是最新的,就是因为Eureka
的自我保护模式导致的;Eureka
本质上是一个工程,而ZooKeeper
只是一个进程;Eureka
可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像ZooKeeper
一样使得整个注册系统瘫痪;ZooKeeper
保证的是CP
,Eureka
保证的是AP
。
8、CAP是什么?
- C(Consistency):一致性(强一致性、单调一致性、会话一致性、最终一致性、弱一致性)。
- A(Availability):可用性。
- p(Partition tolerance):分区容错性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?