SpringCloud全家桶之服务注册与发现(理论篇,实现篇制作中.......)

SpringCloud是一个微服分布式的一站式解决方案,SpringCloud把其理解为一个平台更为贴切一点。在SpringCloud生态上给一些技术栈提供了不少的“加入“规则”,SpringCloud微服分布式是基于SpringBoot实现的,所在写这篇文章的时候就默认读者是会SpringBoot的,虽然没什么读者,但还是强烈建议,原来使用SpringBoot1.x.x的同学改为SpringBoot2.x.x。直接来官网https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
这段英文的作用就是装逼而用的,并没有实际意义
在这里插入图片描述
主要看看SpringCloud主要有哪些技术栈,官网的截图可以看看,Eureka的身影已经难寻。
在这里插入图片描述

分布式的一个概述

微服分布式全家桶,这个大家族包含了服务胡策与发现、服务负载与调用、服务熔断与降级、服务的置和服务总线。下图所示,其中打红叉的是已经停更的技术,但是并不停用。从学习的角度上来看,学习较低版本的技术,对其技术的原理更加深刻。
图在这里插入图片描述
此篇文章如果要一一介绍所有的SpringCloud技术栈是不可能的,所以重点介绍的是SpringCloud的服务注册中心。而服务注册中心,最应该学习的就是Eureka,虽然已经面临被淘汰的威胁,但是Eureka最有利于理解微服注册中心的原理。

什么是服务治理

SpringCloud封装了Netflit公司开发的Eureka模块来实现服务治理。

RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。
想了解更多的RPC,看看这位博主的文章吧:https://blog.csdn.net/lidongpeng111/article/details/82356160
在传统的rpc远程调用框架中,管理每个服务与服务之间的依赖关系非常复杂,管理起来也比较困难,所以需要使用服务治理。管理服务与服务之间的依赖关系,可实现服务调用、负载均衡容错等,实现服务发现与注册。

什么注册中心?

当一个服务启动时,会把当前自己服务器的信息(如服务地址、通讯地址、端口)以别名的方式注册到注册中心。另外一方(消费者|服务提供方),应该以别名的方式去注册中心获取实际通讯地址。然后再实现本地RPC调用RPC远程调用核心框架思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的依赖关系(服务治理概念)。在任何RPC远程框架中,都会有一个注册中心(存放服务地址相关信息)
在这里插入图片描述

Eureka的两个组件Eureka Server和Eureka Client

Eureka Server提供服务注册服务,各个微服务节点通过配置后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点信息可以在玩野上做一个可视化展示。
EurekaClient通过注册中心进行访问,是一个java客户端,用于简化EurekaServer的交互,客户端之间也具备一个内置的、使用轮询的负载算法的负载均衡器。在应用启动后,将会向EurekaServer发送心跳(默认周期30秒)。如果EurekaServer在多个心跳周期内没有接受到某个节点的心跳,EurekaServer将会从服务注册表中剔除(默认90秒)。

总结

这是Eureka工作原理,虽然是一个即将被淘汰的技术,但是通过它理解服务注册中心是一个不错的选择,后来的zookeeper、consul和nacos等技术,都是差不多的理论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值