Class MulticastRegistryClient
java.lang.Object
org.j7m.middleware.registry.mcast.MulticastRegistryClient
- All Implemented Interfaces:
AutoCloseable, org.j7m.middleware.registry.api.PeerGraphRegistry, org.j7m.middleware.registry.api.RegistryClient, org.j7m.middleware.registry.api.RegistryDiagnostics
public final class MulticastRegistryClient
extends Object
implements org.j7m.middleware.registry.api.RegistryClient, org.j7m.middleware.registry.api.PeerGraphRegistry, org.j7m.middleware.registry.api.RegistryDiagnostics
Decentralized multicast-style registry client.
The client owns a local embedded registry, listens on an injected multicast bus, answers bounded discovery questions, ignores self messages, filters by registry context, and returns only active records. All methods are thread-safe.
-
Constructor Summary
ConstructorsConstructorDescriptionMulticastRegistryClient(EmbeddedRegistryStore store, Clock clock, MulticastRegistryOptions options) Creates a multicast registry with supplied store and clock.MulticastRegistryClient(EmbeddedRegistryStore store, Clock clock, MulticastRegistryOptions options, org.j7m.middleware.registry.api.RegistryRecordVerifier verifier, boolean strictTrust, org.j7m.middleware.security.api.SecurityAuditSink auditSink) Creates a multicast registry with explicit received-record trust policy.Creates a multicast registry with a fresh embedded store and system clock. -
Method Summary
Modifier and TypeMethodDescriptionintvoidbind(org.j7m.middleware.registry.api.RegistryRecord record) intvoidclose()intorg.j7m.middleware.registry.api.DiscoveryStatisticsvoidExpires stale in-flight questions.voidheartbeat(org.j7m.middleware.api.ObjectRef ref, long leaseUntil) List<org.j7m.middleware.registry.api.RegistryRecord> list(org.j7m.middleware.registry.api.RegistryQuery query) Optional<org.j7m.middleware.registry.api.RegistryRecord> lookup(org.j7m.middleware.api.ObjectRef ref) intbooleanList<org.j7m.middleware.registry.api.RegistryPeerStatus> peers(org.j7m.middleware.registry.api.PeerQuery query) List<org.j7m.middleware.registry.api.DiscoveryEvent> voidunbind(org.j7m.middleware.api.ObjectRef ref) voidupdatePeer(org.j7m.middleware.registry.api.RegistryPeerStatus status)
-
Constructor Details
-
MulticastRegistryClient
Creates a multicast registry with a fresh embedded store and system clock.- Parameters:
options- multicast options
-
MulticastRegistryClient
public MulticastRegistryClient(EmbeddedRegistryStore store, Clock clock, MulticastRegistryOptions options) Creates a multicast registry with supplied store and clock.- Parameters:
store- local embedded storeclock- registry clockoptions- multicast options
-
MulticastRegistryClient
public MulticastRegistryClient(EmbeddedRegistryStore store, Clock clock, MulticastRegistryOptions options, org.j7m.middleware.registry.api.RegistryRecordVerifier verifier, boolean strictTrust, org.j7m.middleware.security.api.SecurityAuditSink auditSink) Creates a multicast registry with explicit received-record trust policy.- Parameters:
store- local embedded storeclock- registry clockoptions- multicast optionsverifier- record verifierstrictTrust- true to reject invalid or unsigned recordsauditSink- optional audit sink for suspicious records
-
-
Method Details
-
bind
public void bind(org.j7m.middleware.registry.api.RegistryRecord record) - Specified by:
bindin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
unbind
public void unbind(org.j7m.middleware.api.ObjectRef ref) - Specified by:
unbindin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
lookup
public Optional<org.j7m.middleware.registry.api.RegistryRecord> lookup(org.j7m.middleware.api.ObjectRef ref) - Specified by:
lookupin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
list
public List<org.j7m.middleware.registry.api.RegistryRecord> list(org.j7m.middleware.registry.api.RegistryQuery query) - Specified by:
listin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
heartbeat
public void heartbeat(org.j7m.middleware.api.ObjectRef ref, long leaseUntil) - Specified by:
heartbeatin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
peers
public List<org.j7m.middleware.registry.api.RegistryPeerStatus> peers(org.j7m.middleware.registry.api.PeerQuery query) - Specified by:
peersin interfaceorg.j7m.middleware.registry.api.RegistryClient
-
updatePeer
public void updatePeer(org.j7m.middleware.registry.api.RegistryPeerStatus status) - Specified by:
updatePeerin interfaceorg.j7m.middleware.registry.api.PeerGraphRegistry
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceorg.j7m.middleware.registry.api.RegistryClient
-
discoveryStatistics
public org.j7m.middleware.registry.api.DiscoveryStatistics discoveryStatistics()- Specified by:
discoveryStatisticsin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
recentDiscoveryEvents
- Specified by:
recentDiscoveryEventsin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
activeDiscoveryQuestions
public int activeDiscoveryQuestions()- Specified by:
activeDiscoveryQuestionsin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
lookupCacheSize
public int lookupCacheSize()- Specified by:
lookupCacheSizein interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
bootstrapHintCount
public int bootstrapHintCount()- Specified by:
bootstrapHintCountin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
contactedBootstrapPeerCount
public int contactedBootstrapPeerCount()- Specified by:
contactedBootstrapPeerCountin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
multicastListenerRunning
public boolean multicastListenerRunning()- Specified by:
multicastListenerRunningin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
multicastAdapterType
- Specified by:
multicastAdapterTypein interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
multicastEndpoint
- Specified by:
multicastEndpointin interfaceorg.j7m.middleware.registry.api.RegistryDiagnostics
-
expireQuestionCache
public void expireQuestionCache()Expires stale in-flight questions.
-