blob: ebeacdf6677e9d4345799a580cee4cc956515a2b [file] [log] [blame]
@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 :netserializeconnectrequest response
@enduml