微服务组件之RPC(中)
2024-02-15 11:13:24
RPC 基础功能
数据传输
RPC 的核心功能是数据传输。当客户端发起 RPC 请求时,它会将请求数据打包成一个消息,并通过网络发送给服务端。服务端收到消息后,将其解包成请求数据,并执行相应的业务逻辑。执行完成后,服务端将结果数据打包成一个消息,并通过网络发送给客户端。客户端收到消息后,将其解包成结果数据,并返回给调用者。
序列化/反序列化
在 RPC 中,数据传输需要经过序列化和反序列化的过程。序列化是指将数据转换成可以在网络上传输的格式。反序列化是指将网络上传输的数据转换成可以在应用程序中使用的格式。
RPC 产品功能
除了 RPC 基础功能外,RPC 还具备八大功能模块,分别为:
Consumer
Consumer 负责管理客户端与服务端之间的连接、负载均衡、请求路由和超时处理。
服务发现
服务发现是指客户端能够找到服务端的位置。在 RPC 中,服务发现通常由注册中心来实现。注册中心是一个存储服务端地址的组件,客户端可以向注册中心查询服务端地址,从而找到需要调用的服务端。
注册中心
注册中心是服务发现的核心组件。它负责存储服务端地址,并提供查询服务端地址的接口。客户端可以向注册中心查询服务端地址,从而找到需要调用的服务端。
负载均衡
负载均衡是指将请求均匀地分配到多个服务端上,以提高系统的吞吐量和可用性。在 RPC 中,负载均衡通常由 Consumer 来实现。Consumer 会根据一定的算法选择一个服务端来发送请求,从而实现负载均衡。
健康检查
健康检查是指定期检查服务端是否正常工作。在 RPC 中,健康检查通常由 Consumer 来实现。Consumer 会定期向服务端发送心跳请求,如果服务端没有响应,则认为服务端已经宕机,Consumer 会将服务端从服务列表中移除。
路由算法
路由算法是指 Consumer 根据一定的规则选择一个服务端来发送请求。在 RPC 中,常见的路由算法包括随机算法、轮询算法、加权轮询算法和一致性哈希算法等。
熔断器
熔断器是指当服务端发生故障时,客户端停止向服务端发送请求,以防止客户端被服务端拖垮。在 RPC 中,熔断器通常由 Consumer 来实现。Consumer 会监控服务端的故障情况,如果服务端的故障率达到一定阈值,则熔断器会启动,客户端会停止向服务端发送请求。当服务端的故障率下降到一定阈值时,熔断器会关闭,客户端会恢复向服务端发送请求。
限流
限流是指当客户端的请求量超过服务端的处理能力时,客户端限制向服务端发送请求,以防止服务端被客户端压垮。在 RPC 中,限流通常由 Consumer 来实现。Consumer 会监控客户端的请求量,如果客户端的请求量超过一定阈值,则限流器会启动,客户端会限制向服务端发送请求。当客户端的请求量下降到一定阈值时,限流器会关闭,客户端会恢复向服务端发送请求。
线程池
线程池是指预先创建好一定数量的线程,当有任务需要执行时,从线程池中取出一个线程来执行任务。在 RPC 中,线程池通常由 Consumer 来管理。Consumer 会预先创建一定数量的线程,当有请求需要处理时,从线程池中取出一个线程来处理请求。当线程处理完请求后,会将其放回线程池,以便下次使用。