PlantUML |
---|
@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 |