springcloud注册中心是什么意思?有什么作用?

XIAO 2020-05-02 08:24:32 java常见问答 4220

可能我们都知道现如今java分布式微服务的流行程度,那么你了解过springcloud的有关内容吗?例如,springcloud中的注册中心是什么?用在何处?

注册中心其实就是服务发现的核心。它主要保存了各个可用服务实例的网络地址(指IP Address和Port)。服务注册中心必须要有高可用性和实时更新功能。 Netflix Eureka 就是一个服务注册中心。它还提供了服务注册和查询服务信息的REST API。服务就通过使用POST请求注册自己的IP Address和Port。以每30秒(默认)的速度发送一个PUT请求刷新注册信息。再通过DELETE请求注销服务。客户端通过GET请求获取可用的服务实例信息。

实现注册中心的不同技术有:eureka、Zookeeper和Consul。

三种技术实现是根据CAP理论(三种特性:Consistency(一致性) 、Availability(可用性)、Partition tolerance(分区容错性),在分布式设计中只能选其二)的取舍进行设计的,具体特性如下:

# eureka 就是按照AP原则设计,作为分布式场景下的服务发现的产品较为合适,服务发现场景的可用性优先级较高,一致性并不是特别要命。各个服务可以单独提供服务,不需要发起选举;

# zookeeper 是按照CP原则设计的,牺牲了可用性,在服务发现场景并很大优势,需要选举,在选举过程中服务不可用;

# Consul 是按照CA原则设计的,为了确保数据的一致性,需要发起选举,在选举过程中服务不可用。

注册中心管理原理

因为所有的服务端及访问服务的客户端都是需要连接到注册管理器(eureka服务器)的。服务在启动时就会自动注册自己到eureka服务器,然后每一个服务都有一个名字,这个名字会被注册到eureka服务器。使用服务的一方只需要使用该名字加上方法名就可以调用到服务。

属性配置与注解。

配置:服务注册中心:eureka.server.enable-self-preservation=true/false Eureka的自我保护模式开关;

服务实例类:eureka.instance.appname=dal-service-1 服务名,默认取 spring.application.name 配置值,如果没有则为 unknown;

服务注册类: eureka.client. service-url. defaultZone=http//:ip:port/eureka 指定服务注册中心地址;

注解:

@EnableEurekaServer 该注解表明应用为eureka服务,可以联合多个服务作为集群,对外提供服务注册以及发现功能。

@EnableEurekaClient 该注解表明应用既作为eureka实例又为eureka client 可以发现注册的服务(netflix)

@EnableDiscoveryClient 该注解表明应用既作为eureka实例又为eureka client 可以发现注册的服务 (commons);

那么以上就是有关springcloud注册中心的所有内容了,还想了解更多java架构师相关信息,记得来关注本站消息哦。