本節(jié)主要分析pinpoint-collect的源碼。

采用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傳輸?shù)姆斩耍?/p>
他是由類PinpointServerAcceptor定義的,PinpointServerAcceptor的構造函數(shù)中主要是
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數(shù)據庫,有的產生response返回Agent。