Pinpoint源码解析(四)

本节主要分析pinpoint-collect的源码。

Pinpoint源码解析(四)_第1张图片
1、项目结构

采用Spring MVC构架,所以入口在web.xml,web中主要引入了applicationContext-collector.xml和servlet-context.xml文件。

servlet-context.xml中主要定义了spring中相关内容,包括扫描control类,jsp视图,以及拦截器等。

applicationContext-collector.xml是collector的重点,包括加载属性文件,hbase配置文件,以及相关的一些bean。

这些bean中非常重要的一个bean就是serverAcceptor,主要作用是定义管理Thrift传输的服务端,

他是由类PinpointServerAcceptor定义的,PinpointServerAcceptor的构造函数中主要是

ServerBootstrap bootstrap = createBootStrap(1,WORKER_COUNT);

setOptions(bootstrap);

addPipeline(bootstrap);

这三句,createBootStrap中定义了boss和worker线程池,addPipeline是将handler添加到管道中,这个handler 主要是由nettyChannelHandler定义的,nettyChannelHandler是由

PinpointServerChannelHandler nettyChannelHandler =new PinpointServerChannelHandler();

初始化的,在PinpointServerChannelHandler类中,定义了channelConnected,channelDisconnected,channelClosed和messageReceived方法,
messageReceived方法根据packetType来处理包,有的存入Hbase数据库,有的产生response返回Agent。

你可能感兴趣的:(Pinpoint源码解析(四))