可能我们都知道现如今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架构师相关信息,记得来关注本站消息哦。