SpringCloud微服务模块了解

一、RPC基本知识

Remote Procedure Call,远程过程调用,简单的理解是一个节点请求另一个节点提供的服务。

1、远程过程调用原理

  • 首先客户端需要告诉服务器调用的函数,这里函数和进程ID存在一个映射,客户端远程调用时,需要查一下函数,找到对应的id。
  • 客户端把参数转化为字节流,传给服务器,服务器再把字节流转化成自身要读取的数值,
  • 网络传输层需要把调用的id和序列化后的参数传给服务端,然后把计算好的结果返回给客户端,因此在TCP层即可完成,gRPC采用的是http2协议
  • RPC主要依赖于客户端和服务端建立socket链接。
// Client端 
//    Student student = Call(ServerAddr, addAge, student)
1. 将这个调用映射为Call ID。
2. 将Call ID,student(params)序列化,以二进制形式打包
3. 把2中得到的数据包发送给ServerAddr,这需要使用网络传输层
4. 等待服务器返回结果
5. 如果服务器调用成功,那么就将结果反序列化,并赋给student,年龄更新

// Server端
1. 在本地维护一个Call ID到函数指针的映射call_id_map,可以用Map<String, Method> callIdMap
2. 等待客户端请求
3. 得到一个请求后,将其数据包反序列化,得到Call ID
4. 通过在callIdMap中查找,得到相应的函数指针
5. 将student(params)反序列化后,在本地调用addAge()函数,得到结果
6. 将student结果序列化后通过网络返回给Client

image

二、SpringCloud理解

借鉴:https://blog.csdn.net/qq_41701956/article/details/83829539

image

1、SpringCloud核心组件:Eureka

  • Eureka是SpringCloud注册中心,专门负责服务的注册与发现。
  • Eureka Client:负责将这个服务信息注册到Edureka Server中
  • Eureka Server:注册中心,有一个注册表,保存着各个服务的服务器地址和端口号。

2、SpringCloud核心组件:Feign

  • 每个服务间的调用工具Feign,@EnableFeignClients指定Feign调用位置,@FeignClient指定调用方法调用类

 

2、1调用过程image

  • 首先,如果你对某个接口定义了@FeignClient注解,Feign就会针对这个接口创建一个动态代理
  • 接着你要是调用那个接口,本质就是会调用 Feign创建的动态代理,这是核心中的核心
  • Feign的动态代理会根据你在接口上的@RequestMapping等注解,来动态构造出你要请求的服务的地址
  • 最后针对这个地址,发起请求、解析响应

3、SpringCloud核心组件:Ribbon

  • 负载均衡组件,Ribbon默认使用最经典的Round Robin轮询算法。

3、1 Ribbon和Eureka、Feign合作的

  • 首先Ribbon会从 Eureka Client里获取到对应的服务注册表,也就知道了所有的服务都部署在了哪些机器上,在监听哪些端口号。
  • 然后Ribbon就可以使用默认的Round Robin算法,从中选择一台机器
  • Feign就会针对这台机器,构造并发起请求。

image

4、SpringCloud核心组件:Hystrix

  • Hystrix,隔离、熔断和降级的一个框架。
  • 在多服务的情况下,如果一个服务挂了,而另一个服务要调用此服务,但是这个服务又不是必要的,就可以将这个服务熔断,每隔一定的时间在访问此服务。此时另一个服务可以记录调用此服务的记录,此为降级。

image

5、SpringCloud核心组件:ZUUL

  • 微服务网关,负责网络路由的
  • 前端所有的请求都会从网关走,网关会根据请求的特征,将这些请求转发给各个服务。
  • 优点:可以做统一的降级、认证授权、限流等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值