Class BrokerVersionFilter
java.lang.Object
org.apache.pulsar.broker.loadbalance.extensions.filter.BrokerVersionFilter
- All Implemented Interfaces:
BrokerFilter
Filter by broker version.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfilterAsync(Map<String, BrokerLookupData> brokers, org.apache.pulsar.common.naming.ServiceUnitId serviceUnit, LoadManagerContext context) From the given set of available broker candidates, filter those old brokers using the version numbers.com.github.zafarkhaja.semver.VersiongetLatestVersionNumber(Map<String, BrokerLookupData> brokerMap) Get the most recent broker version number from the broker lookup data of all the running brokers.name()The broker filter name.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.pulsar.broker.loadbalance.extensions.filter.BrokerFilter
filter
-
Field Details
-
FILTER_NAME
- See Also:
-
-
Constructor Details
-
BrokerVersionFilter
public BrokerVersionFilter()
-
-
Method Details
-
filterAsync
public CompletableFuture<Map<String,BrokerLookupData>> filterAsync(Map<String, BrokerLookupData> brokers, org.apache.pulsar.common.naming.ServiceUnitId serviceUnit, LoadManagerContext context) From the given set of available broker candidates, filter those old brokers using the version numbers.- Specified by:
filterAsyncin interfaceBrokerFilter- Parameters:
brokers- The currently available brokers that have not already been filtered.context- The load manager context.serviceUnit- The current serviceUnit.- Returns:
- Filtered broker list.
-
getLatestVersionNumber
public com.github.zafarkhaja.semver.Version getLatestVersionNumber(Map<String, BrokerLookupData> brokerMap) throws BrokerFilterBadVersionExceptionGet the most recent broker version number from the broker lookup data of all the running brokers. The version number is from the build artifact in the pom and got added to the package when it was built by Maven- Parameters:
brokerMap- The BrokerId -> BrokerLookupData Map.- Returns:
- The most recent broker version
- Throws:
BrokerFilterBadVersionException- If the most recent version is undefined (e.g., a bad broker version was encountered or a broker does not have a version string in its lookup data.
-
name
Description copied from interface:BrokerFilterThe broker filter name.- Specified by:
namein interfaceBrokerFilter
-