在计费中心的对外交互这块采用了hessian,有必要对hessian的运行机理和源码做一定的解析。

大致翻了翻源码后,发现hessian的主要结构分客户端与服务端,中间基于http传输。客户端主要做的事情是把对远程接口调用序列化为流,并传输到服务端;服务端主要做的事情是把传输过来的流反序列化为对服务的请求,调用相应服务后把结果序列化为流返回给客户端。一次完整的调用如下图所示:

HessianProxy是hessian client处理客户端请求的核心类,它采用proxy的设计模式,代理客户端对远程接口的调用,hessian client的主流程的时序图如下所示:

HessianSkeleton是hessian server端的核心类,从输入流中返序列化出客户端调用的方法和参数,对服务端服务进行调用,然后把处理结果返回给客户端,主要流程时序图如下所示:

最新文章

  1. JAVA Socket 编程学习笔记(二)
  2. 32、mybatis
  3. c++ primer 5th 练习3.43
  4. Java系列:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
  5. 【转】KMP算法
  6. 【OpenStack】OpenStack系列16之OpenStack镜像制作
  7. NOIP2013,复赛及同步赛,报名及比赛,专题页面
  8. Odoo Qweb报表css丢失问题
  9. 【.net】创建属于自己的log组件——改进版
  10. C#并行编程--命令式数据并行(Parallel.Invoke)
  11. nmcli命令大集合
  12. 阿里云Centos7 apache配置
  13. background属性的学习整理转述
  14. Spring Security 实战:QQ登录实现
  15. python 格式化输出日志记录
  16. js 金额处理加小数点后两位
  17. 关于如何食用Xcode——用mac的小蒟蒻
  18. 洛谷P3302 森林
  19. 【Spark】SparkStreaming-输出到Kafka
  20. 关于 lerp();

热门文章

  1. JVM剖析
  2. 浅析jQuery中常用的元素查找方法总结
  3. 【转】详解spring事务属性
  4. iOS 关于流媒体 的初级认识与使用
  5. iOS- 自定义UIView (测试block和代理)
  6. [WinForm] TableLayoutPanel和FlowLayoutPanel的使用
  7. 【Android 界面效果13】关于全屏和取消标题栏
  8. 函数参数选项的处理getopt getopt_long getopt_long_only
  9. maven 本地仓库nexus的安装
  10. mysql的相关操作