| @startuml |
| interface api.MQProducer{ |
| |
| } |
| interface api.MQConsumer{ |
| |
| } |
| interface api.MQClientInstance{ |
| |
| |
| } |
| |
| namespace api{ |
| MQClientInstance o-- kernel.MqClientManager |
| MQProducer o-- kernel.DefaultMQProducer |
| MQConsumer o-- kernel.DefaultMQPushConsumer |
| MQConsumer o-- kernel.DefaultMQPullConsumer |
| } |
| |
| class kernel.MqClientManager{ |
| kernelState |
| } |
| class kernel.PullMessageController{ |
| |
| } |
| class kernel.AllocateMessageQueueStrategy{ |
| } |
| class kernel.ClientFactory{ |
| mqConsumerTable |
| mqProducerTable |
| } |
| class kernel.DefaultMQPushConsumer{ |
| } |
| class kernel.DefaultMQPullConsumer{ |
| to be done |
| } |
| class kernel.DefaultMQProducer{ |
| } |
| class kernel.MqClient{ |
| |
| } |
| class kernel.MessageListener{ |
| } |
| class remoting.RemotingClient{ |
| invokeSync |
| invokeAsync |
| invokeOneWay |
| } |
| class remoting.RemotingCommand{ |
| customHeader |
| requestCode |
| responseCode |
| } |
| class remoting.ClientConfig{ |
| nameSrvAddr |
| clientIP |
| instanceName |
| } |
| class remoting.ClientRequestProcessor{ |
| receive request and invoke the method. |
| GET_CONSUMER_STATUS_FROM_CLIENT |
| GET_CONSUMER_RUNNING_INFO |
| ... |
| } |
| class remoting.SerializerHandler{ |
| JsonSerializer |
| RocketMqSerializer |
| } |
| |
| |
| namespace kernel{ |
| |
| |
| kernel.PullMessageController *-- kernel.ClientFactory:contains |
| MqClientManager o-- PullMessageController |
| MqClientManager o-- ClientFactory |
| kernel.ClientFactory *-- DefaultMQPushConsumer:contains |
| kernel.ClientFactory *-- DefaultMQPullConsumer:contains |
| DefaultMQPushConsumer *-- kernel.MqClient : contains |
| DefaultMQPushConsumer *-- kernel.OffsetStore : contains |
| DefaultMQPushConsumer *-- kernel.Rebalance : contains |
| DefaultMQPushConsumer *-- kernel.ConsumeMessageService : contains |
| kernel.ClientFactory *-- DefaultMQProducer:contains |
| |
| DefaultMQProducer *-- kernel.MqClient :contains |
| |
| |
| } |
| |
| namespace kernel{ |
| MqClient o-- remoting.RemotingClient:contains |
| OffsetStore o-- MqClient |
| Rebalance o-- MqClient |
| Rebalance o-- OffsetStore |
| Rebalance o-- AllocateMessageQueueStrategy |
| ConsumeMessageService o-- SendMessageBackProducerkernel |
| ConsumeMessageService o-- OffsetStore |
| ConsumeMessageService o-- MessageListener |
| } |
| |
| namespace remoting { |
| RemotingClient *-- RemotingCommand |
| RemotingClient *-- ClientConfig |
| RemotingClient *-- ClientRequestProcessor |
| RemotingClient *-- SerializerHandler |
| |
| |
| } |
| |
| |
| |
| note top of remoting.RemotingClient :(sync|aysc|oneWay) |
| note top of remoting :net,serialize,connect,request response |
| |
| @enduml |