Jimmy Lee Notes Take notes, Reading...

resteasy调用流程

2016-11-01
Jimmy Lee
RPC

前言

用resteasy调用其他系统的服务,配置的http pool,为了检验一下何时释放的链接,debug了一下,对调用链路做个笔记
resteasy version:3.0.19.Final

调用链路

  • 执行前
    ClientProxy
    -> ClientInvoker
    -> ClientRequest
    -> ClientExecutionContextImpl
    -> ApacheHttpClient4Executor
    -> CloseableHttpClient
    -> InternalHttpClient.doExecute

  • 然后return
  • 直到返回到ClientInvoker -> BodyEntityExtractor

解释说明

1.在ApacheHttpClient4Executor, 创建了释放链接和从stream中获取对象的类
2.BodyEntityExtractor, 这里检测http status是否异常,异常则抛异常,且返回异常的对象的时候,做了一个copy stream的动作, 这样保证释放了当前的链接, 又保留了原始的数据流, 这样如果客户端想要进行自定义的一些操作,依然可以读到数据



上一篇 数据库缓存一致性

下一篇 spring aop笔记


Comments