RPC调用基础及Java学习笔记

Posted 北国故事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPC调用基础及Java学习笔记相关的知识,希望对你有一定的参考价值。

RPC调用四种方式

RPC Remote Procedure Call
Sync 同步调用,客户端调用远程服务接口时,业务线程Block,直到服务返回结果
Callback 回调调用,客户端调用远程服务接口时,业务线程不Block,并且无结果返回,结果会在后续返回,并触发注册的Callback接口执行
Future 异步调用,客户端调用远程服务接口时,业务线程不Block,无结果返回,但可以获取到这次调用的句柄Future实例,后续可以通过 该句柄获取服务的结果,该方式在优化性能时极为有用,一些与这次服务调用不相干的操作可以在服务未返回时执行,后续再通过 Future句柄获取服务结果,即很多事情是并行交叉的。多个互不相关的服务调用,也可以通过这种方式并行处理,缩短处理总时间
Oneway 单向调用,客户端调用远程服务接口时,业务线程不Block,无结果返回,并且服务端无响应消息写回,客户端不关心服务端是否正 确处理请求,仅关心消息是否发送出去。对于应用发送Trace/Log之类的消息非常有用,性能最快,吞吐最大,资源最节约。

优雅编码 - 工具类编写

工具类的目标是要编写通用灵活的方法。重点注意参数的优化,多使用重载。

  1. 隐藏实现,编写自己的工具类方法,不要再业务代码直接调用第三方工具类

  2. 使用父类/接口

  3. 使用重载编写衍生函数组

  4. 使用静态引入,方便找到工具方法

  5. 物理上独立存放,独立维护

技术点总结

  1. spring的aop和拦截器的使用

  2. log4j的MDC使用

  3. JDK的ThreadLocalInherbritableThreadLocal和的使用

对开发组长的要求

定义好代码框架,不要做太多、太细的要求,否则无法落地。这篇文章中,规范中要求做到的少,不准做的多,落地相对容易。

  1. 定义好统一的接口格式、异常、常量等

  2. 多使用AOP和ThreadLocal与InherbritableThreadLocal简化代码

  3. 亲自编写校验函数和工具类

  4. 代码评审中,严格控制函数的参数,不允许出现复杂参数和业务无关的参数

对开发人员的要求

  1. 不要养成面对debug编程,用日志代替debug

  2. 不要一上来就做整个功能测试,要一行一行代码一个一个函数测试

  3. 谨慎捕获异常和加空判断,加了空判断就要测试为空和不为空二种情况

  4. 日志也是代码的一部分,提交代码前先运行看一遍操作日志


以上是关于RPC调用基础及Java学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

RMI学习笔记

Android Binder 系统学习笔记Binder系统的基本使用方法

JavaGuide-RPC框架项目学习笔记-未完待续

JavaGuide-RPC框架项目学习笔记-未完待续

Java学习笔记

Java学习笔记