THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
@startuml
...
title
...
Relationships - Class Diagram
...
class MembershipManager {
...
...
send message
...
...
keep track of members
...
...
find and remove members
...
}
...
class JGroupsMessenger {
...
...
send and receive UDP messages
...
...
encapsulates jgroups
...
}
...
class JChannel {
...
...
jgroups stack with udp socket
...
}
...
class NetMember
...
{
member metadata
unique member id
member address - host, udp and tcp ports
}
class InternalDistributedMember {
additional member metadata
}
class NetView {
list of members
}
class MemberFactory {
...
...
Static factory
...
}
...
class Services
...
interface Service
...
class GMSHealthMonitor {
check that members are alive and communicating.
}
class GMSJoinLeave {
Provides API to join and leave cluster
reveives messages about joins/leaves from the network
}
MembershipManager "1" *-- "1" Services
...
MemberFactory *-- MemberFactory
...
MemberFactory --> MembershipManager: Creates
...
Services *-- Service
...
NetView "1" *-- "*" InternalDistributedMember
...
InternalDistributedMember "1" *-- "1" NetMember
...
GMSHealthMonitor --|>
...
Service
JGroupsMessenger --|> Service
...
GMSJoinLeave --|> Service
...
JChannel --* JGroupsMessenger
...
@enduml