github地址:https://github.com/Luyu05/BioRpcExample
PART1:先来整体看下项目的构成
其中bio-rpc-core就是所谓的rpc框架
bio-rpc-example-client即所谓的服务调用方(你的项目中想要调用服务的地方)
bio-rpc-example-server即所谓的服务提供方(你的项目中写好服务想要供别人调用的地方)
PART2:这个框架咋用?
服务使用方
1.首先,在想要调用服务的地方(bio-rpc-example-client)引入框架的jar包,本例中如下图
2.跟普通的要托管给spring的bean一样,在配置文件中引入bean的基本信息,值得注意的是这里的这个类NetComClientProxy(框架里的核心部分)
3.在想要使用的地方,通过@resource等让spring帮助我们完成自动注入,此时就可以像调用本地类的方法一样调用远程的方法了~
4.至此服务使用方讲解完成,是不是很简单,下面看看服务提供方需要做什么(你会发现比这里更简单)
服务提供方
1.第一步与上面类似,引入框架jar包
2.第二步,在你想要对外提供的类的上方,加上一个注解
3.值得注意的是,还需要在服务提供方与服务使用方的pom文件中引入对应的api的jar包,如下图
4.大功告成,启动项目试试,先启动server(服务提供端:bio-rpc-example-server),再启动client(服务调用端:bio-rpc-example-client),如果看到下面内容,就说明你已经成功了~你现在已经可以把服务部署到老王的PC上(我们称为A),再在你本机上(称为B)调用A上定义的类以及方法(B是怎么知道A上定义的方法的具体细节的?还记得我们引入的定义类的api包吗),最重要的是方法的执行过程耗费的是A机器的资源,与你也就是B机器没啥太大关系,你只要负责发送调用请求,再收方法执行结果就行了。
PART3 框架是咋实现的,为啥我通过简单的几个注解,还有配置的bean就可以用老王的机器执行我的任务了?
感兴趣的同学可以下载源码看看,在bio-rpc-core里面,核心代码加起来不过200+行,很容易就能看懂,重点关注NetComClientProxy和NetComServerFactory这两个类(还记得我们配置bean的时候的那个class吗?)