RPC框架的优化

服务注册

消费者如何知道提供者的调用地址呢?

我们需要注册中心来保存服务提供者的地址。消费者要调用服务时,只需从注册中心获取对应服务的提供者地址即可。注册中心可以使用redis。
image

负载均衡

如果有多个服务提供者,消费者应该调用哪个服务提供者呢?

我们可以给服务调用方增加 负载均衡 能力,通过指定不同的算法(比如轮询、随机、根据性能动态调用等)来决定调用哪一个服务提供者。
image

容错机制

如果服务调用失败,应该如何处理呢?

为了保证分布式系统的高可用,我们通常会给服务的调用增加一定的容错机制
image
剩余的优化问题:

  • 服务提供者下线了怎么办?需要一个失效节点剔除机制。
  • 服务消费者每次都从注册中心拉取信息,性能会不会很差?可以使用缓存来优化性能。
  • 如何优化 RPC 框架的传输通讯性能?比如选择合适的网络框架、自定义协议头、节约传输体积等。
  • 如何让整个框架更利于扩展?比如使用 Java 的 SPI 机制、配置化等等。
posted @ 2025-08-15 21:23  蒟蒻00  阅读(23)  评论(0)    收藏  举报