注册中心的选择和Eurake服务搭建

注册中心的选择和Eurake服务搭建

在上一篇介绍了微服务的基础架构(微服务基础架构),里面也了解到注册中心有Zookeeper和Eurake,那我们在开发的时候选择哪一种作为服务注册中心呢?

客观的来说使用哪种作为注册中心都是可行的,但是还是得根据项目的具体需求来选择。

通过CAP定理选择注册中心。

1.Zookeeper : cp设计,它保证了一致性和分区容错性,集群搭建的时候,某个节点失效,则会进⾏选举的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足。
2.Eurake : ap设计,无主从节点,一个节点挂了,自动切换其他节点可以使用,保证了可用性,但无法保证一致性。

分布式系统中p是必须要保证的要素,所以只能针对具体场景选择设计模式,
比如
金融系统,有大量的数据需要备份等,需要保证一致性,可选zookeeper
电商系统,需要保证系统响应时间,需要保证系统正常使用,这时候就要考虑系统的可用性,可选eurake。
我个人建议使用eurake,毕竟系统可用性还是挺重要的。

Euarke服务搭建

第一步:创建项目

idea创建项目,选择spring Initializr
在这里插入图片描述
然后下一步,完成maven的坐标配置之后,进入到依赖选择页面,
在这里插入图片描述
选择Cloud Discovery 里面的Eureka Server,这样就会自动给你加上相关Eureka的依赖。

第二步 添加注解 @EnableEurekaServer

Eurake注册服务有两个组件:Eurake Server(服务端)和Eurake Client(客户端)
@EnableEurekaServer用来声明服务为服务端,开启服务间对话。
启动流程:
在这里插入图片描述
Eurake服务端启动提供了注册服务(注册中心),各个其他客户端服务节点启动之后,会注册到注册中心,注册中心列表会存储其他节点的信息。

第三步 添加配置
# 默认的端口
server.port=8761
# 声明自己是服务端,不需要往自己身上注册
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

注意一点registerWithEureka和fetchRegistry,用来声明自己是个服务端,不要需要往自己身上注册。
在这里插入图片描述
这样Eurake服务就完成了,现在还没有消费者提供服务,下篇介绍客户端服务搭建。

Eurake注册服务注意事项
1. 自我保护模式禁止关闭

eureka管理后台出现一串红色字体:是警告,说明有服务上线率低
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE
NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT
BEING EXPIRED JUST TO BE SAFE.
关闭检查⽅法:eureka服务端配置文件加上
server:
enable-self-preservation: false
注意:自我保护模式禁止关闭,默认是开启状态true

2. 客户端为什么只加上注册中心地址就能注册?

这个属于后面的内容,这里先说一下,官网中有明显介绍:

By having spring-cloud-starter-netflix-eureka-client on the classpath, your
application automatically registers with the Eureka Server. Configuration is
required to locate the Eureka server, as shown in the following example

就是说,主要加上注册中心配置,就能默认注册到注册中心上,所以加不加@EnableEurakeClient无所谓。

猜你喜欢

转载自blog.csdn.net/qq_31142237/article/details/90409919
今日推荐