实现一个简单的rpc框架-------0序言

rpc框架在互联网公司中有着广泛的应用,在美团实习的时候,项目使用rpc框架来进行服务间的相互调用,这也正迎合了微服务架构的思想,把一个大的服务拆分为几个微服务,每个微服务履行特定的职责,如果服务之间需要通信,或者要使用其他服务提供的功能,则需要远程服务调用。一个典型的rpc框架如下图所示:

RPC框架思路

客户端:使用服务的一方,调用的格式可能是(服务名,参数,服务端ip地址)。

服务端:提供服务的一方,其职责是要处理客户端发来的请求,然后返回结果。

注册中心:探查服务端的信息,比如说有多少存活的服务端可供客户端调用,一般功能有服务发现和服务注册。服务注册:服务端把自己信息注册到注册中心。服务发现:客户端向注册中心查询有哪些可用的服务端。典型的注册中心有Java实现的nacos,golang实现的etcd,注册中心底层算法一般使用的是一致性算法,paxos或者raft,其功能是做冗余,raft提供了在半数以下机器瘫痪的情况下,注册中心还能运行的功能。raft算法见paper:《In search of an Understandable Consensus Algorithm (Extended Version)》.同时,服务端需要在间隔时间内向注册中心,发送心跳包,表明自己仍然存活。

以上,可以大致看出要实现一个建议的rpc框架需要的组件是:

1网络库框架,用于通信。这里可以使用java中的netty。

2注册中心,工程上实现的raft算法并不简单,最好使用现成的注册中心。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值