您的位置 首页 > 数码极客

【rpc服务】一个简易的RPC服务框架

Dubbo是一个优秀的分布式RPC服务框架,但直接查看Dubbo的源代码就会发现,它太复杂了,不容易启动。

所以我开发了一个类似的简易RPC框架。原理是相通的。很适合用来理解RPC框架。

RPC框架解决的是微服务架构下远程服务调用的问题。所以最核心的组件必然是服务的注册中心。这个注册中心运行服务提供方将服务注册上来。和Dubbo一样,我使用Zookeeper实现。服务消费方从注册中心拿到远程服务的地址。继而发起远程方法调用。虽然是远程调用,但是对消费端来讲像本地调用一样。所以这里是用到了前面讲的一个设计模式--代理模式。具体来说是动态代理。封装了底层远程调用的细节。因为是远程调用所以涉及到传输协议,像Dubbo是设计了Dubbo协议。我这简单的demo就没必要了。序列化方面我选用Protostuff,因为java原生的序列化在高并发下会有一些性能问题。IO方面选用NIO,阻塞IO支持不了这种高并发场景。NIO直接用netty框架。

综上,我会用到的技术如下:

1,spring:构建一个java应用的标配了

2,Netty,实现NIO传输方面的功能

3,Zookeeper,注册中心的核心

4,Protostuff,解决序列化问题

我的代码地址:

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐