申请处理过程
- Producer服务启动后,会部署vertx服务,监听端口,期待Client连贯,并且客户端申请路由配置到VertxRestDispatcher.
- Client发动申请,申请被vertx路由到VertxRestDispatcher,通过用户配置的HttpServerFilter进行接管申请后的预处理操作。其中ServerRestArgsFilter是ServiceComb内置的filter,专门用来反序列化申请和序列化响应体的。
- 通过HttpServerFilter的afterReceiveRequest解决后,正式进入Handler链,进行具体的业务解决,用户能够自定义多个Handler,但最初一个Handler是ProducerOperationHandler,这个是ServiceComb内置的Handler,它负责通过反射调用申请对应的operation,对申请进行解决,失去response.
- 失去response后,回调解决response的办法sendResponseQuietly(resp)
- 这个办法做的事是,调用HttpServerFilter链上每个filter的beforeSendResponseAsync,进行发送前解决。其中内置的ServerRestArgsFilter会对response对象进行序列化,变成json字符串,响应给client