logo头像

BUG本天成,妙手偶得之

从0.5到1写个rpc框架 - 0:前言

这不是教程,只是个人总结,有兴趣的童鞋可以搭配源码看看:acuprpc

最近在新公司开始接触微服务,在此之前并没有微服务的开发经验。对比了spring cloud和公司的rpc框架,对微服务这套东西终于有了一点粗浅的认知,为了加深理解,自己动手写个rpc框架玩玩。顺便记录下来,不然玩过的东西过段时间就忘了。

我的spring cloud的入门读物: 史上最简单的 SpringCloud 教程

我的学习成果: acuprpc

设计方案

总的来说就是在现有工具上的二次开发。

  • 服务注册/发现: eureka

    这个模块spring cloud已经集成的非常易用了,实在没兴趣再整些骚操作,引入spring-cloud-starter-eureka-server依赖,启动类加个注解@EnableEurekaServer就是一个注册中心了。

  • 远程服务调用: grpc/thrift

    grpc是Google开源的rpc框架,thrift是Facebook开源的rpc框架,而且他们都支持跨语言,都是很厉害的东西,需要用它们的规则定义数据结构,每个服务都定义一次是挺累的,如果只定义一个通用的服务,然后在这个服务里面通过Java反射去执行对应方法就可以少很多工作量了(把工作量变成了Java代码编写)。

    至于选择这两种,因为都想试试,所以最终设计rpc框架是可以切换通信方式的,把这部分抽出来做成可扩展的即可。

目录

// 只要列出来,总有一天会写完。