初学SpringCloud:简要介绍一下Eureka作为服务中心的工作过程以及我们为什么要使用集群?

1、背景介绍

我目前练习的简单的项目,已经完成了使用Eureka作为服务注册中心的技术,搭建了一个以7001为端口的服务注册中心模块;一个以8001为端口的服务提供者模块(真正的后端业务逻辑代码,包含了数据库);一个以90为端口的服务消费者模块,这个模块中的方法,会通过发送HTTP请求的方式,调用以8001为端口的微服务模块的业务逻辑方法。

2、本篇博客的目的

在完成了最最最简单的一个微服务项目以后,我想简单的做一个总结,介绍一下Eureka的工作过程和接下来我们为什么要使用集群。

3、Eureka的工作过程与原理

由于我本人对Eureka的学习掌握还处于比较浅显的阶段,因此在这里我先推荐一篇博客,讲述的也是Eureka的工作原理,希望能够有所帮助:

https://blog.csdn.net/u014401141/article/details/105420076/

EurakaServer的两大功能分别是服务注册功能和服务发现功能。服务注册功能就是将服务的注册信息注册进服务注册中心;服务发现功能就是从注册中心上获取服务信息。这个功能在EurakaServer集群上体现的更好;它的内部有一张服务注册表,本质就是键值对,key对应服务名,也就是Application文件中,spring.application.name属性的值,value对应着调用地址;

就拿项目举例,简单说一下EurekaServer的工作过程:

1、首先要启动EurekaServer(也就是服务注册中心)。因为无论是服务提供者,还是服务消费者,甚至是后来的EurekaServer集群中的一个EurekaServer,它们都是EurekaClient,都需要注册到服务注册中心EurekaServer上去。

2、把所有的微服务模块,也就是EurekaClient,全部启动。这样启动以后,就会把自身的有关信息,比如服务名,注册到服务注册中心的服务注册表上去。

3、当第一次在浏览器键入一个地址以后,会先去EurekaServer获取实际的RPC远程调用地址,并且在本地缓存服务注册表(本地的缓存是默认每30秒更新的),然后在获得调用地址以后,底层利用HttpClient技术实现远程调用。

另外,EurekaServer还有自我保护机制(当大面积发生心跳失败的时候,启用自我保护机制,保证可用性),每隔一定时间间隔Client端发送心跳给Server端确保正常,Client不正常以后一定间隔内除名的功能。在这里我就不一 一的详细解释了,我上面的链接的博客里面讲的更详细。

4、为什么要使用集群?

在上面,我们提到了RPC(远程服务调用),RPC的核心就是高可用,这也是我们通常所要求的的,不能说我们动不动就遇到服务不可用,404的情况。

想象一下,如果服务注册中心只有一个的话,一旦遇到了什么意外情况,服务注册中心宕机了,那么虽然我们的EurekaClient端缓存的有服务注册表,但是我们现在的服务注册功能肯定是不能用了,这样就可以认为整个微服务的环境不能使用了。

所以我们要搭建EurekaServer的集群,这样就在一定程度上能够保证,当一个Server不能使用的时候,由于很多个Server之间是互相连接注册的,那么我们就可以使用别的Server,这就像是一个城市道路网一样。

同样的道理,我们也可以在EurekaClient端搭建集群,也用来防止出现有一个服务不可用的情况,就比如提供多个服务提供者的模块,它们提供的业务逻辑服务都是一样的,把它们连接起来,这样就可以实现一定程度上的可用性了。

多说一句,我们这样简单的实现了集群以后,后期还要使用到负载均衡和故障容错的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你是我的日月星河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值