important:
all time point is about invocation stage, not java method
all time is nanoTime
not all stage relate to a event, currently, we only have 4 event:
start/finish/startBusiness/finishBusiness
for consumer:
(prepare) (handlerReq) (clientFilterReq)
start --------> startHandlersRequest -----------> startClientFiltersRequest --------------------------------------
<----------------(sendRequest)-----------------> |
(receiveResponse) (writeToBuffer) (getConnection) |
---finishReceiveResponse <----- finishWriteToBuffer <----------- finishGetConnection <-------------- startSend <-
| (wakeConsumer) (clientFiltersResponse) (handlersResponse)
|-----> startClientFiltersResponse -------> finishClientFiltersResponse -------> finishHandlersResponse --> finish
for producer:
(prepare) (threadPoolQueue) (serverFiltersRequest)
start ----> startSchedule -----> startExecution -> startServerFiltersRequest -------> startHandlersRequest -------
(handlersResponse) <-------------(business)-------------> (handlersRequest) |
-----finishHandlersResponse <------ finishBusiness <------- finishBusinessMethod <------ startBusinessMethod------
| (serverFiltersResponse) (sendResponse)
|---> finishServerFiltersResponse ------> finish
for edge:
(prepare) (threadPoolQueue) (serverFiltersRequest)
start ----> startSchedule -----> startExecution -> startServerFiltersRequest ----> startHandlersRequest ----------
<----------(sendRequest)----------> |
(writeToBuffer) (getConnection) (clientFilterReq) (handlersRequest) |
--- finishWriteToBuffer <------ finishGetConnection <------ startSend <------ startClientFiltersRequest <---------
| (receiveResponse) (wakeConsumer) (clientFiltersResponse)
---> finishReceiveResponse ------> startClientFiltersResponse ------> finishClientFiltersResponse ----------------
(sendResponse) (serverFiltersResponse) (handlersResponse) |
finish <------ finishServerFiltersResponse <------ finishHandlersResponse <------------