Interface SiteMasterPicker

All Known Implementing Classes:
RandomSiteMasterPicker, StickySiteMasterPicker

public interface SiteMasterPicker
Allows an implementation to pick a SiteMaster or a Route from a list (if multiple site masters are enabled). An implementation could for example always pick the same site master (or route) for messages from a given sender (sticky site master policy, see https://issues.redhat.com/browse/JGRP-2112).

The default implementation picks a random site master for every message to be relayed, even if they have the same original sender.

If only one site master is configured, then pickSiteMaster(List,Address) (List,Address)} or pickRoute(String,List,Address) will never be called.

Since:
3.6.12, 4.0
  • Method Summary

    Modifier and Type
    Method
    Description
    pickRoute(String site, List<Route> routes, Address original_sender)
    Picks a route to a given remote site from a list of routes.
    pickSiteMaster(List<Address> site_masters, Address original_sender)
    Needs to pick a member from a list of addresses of site masters
  • Method Details

    • pickSiteMaster

      Address pickSiteMaster(List<Address> site_masters, Address original_sender)
      Needs to pick a member from a list of addresses of site masters
      Parameters:
      site_masters - The list of site masters
      original_sender - The address of the original member sending a message
      Returns:
      The address of the site master (in the local cluster) to be used to forward the message to
    • pickRoute

      Route pickRoute(String site, List<Route> routes, Address original_sender)
      Picks a route to a given remote site from a list of routes.
      Parameters:
      site - The name of the target (remote) site. Added for informational purposes; may or may not be used as selection criterium.
      routes - The list of routes. A route can be picked for example by using the address of the remote site master: Route.siteMaster()
      original_sender - The address of the original sender
      Returns:
      A route