Class LocalBrokerData
- java.lang.Object
-
- org.apache.pulsar.policies.data.loadbalancer.LocalBrokerData
-
- All Implemented Interfaces:
org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport,org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
public class LocalBrokerData extends java.lang.Object implements org.apache.pulsar.policies.data.loadbalancer.LoadManagerReportContains all the data that is maintained locally on each broker.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringloadReportType
-
Constructor Summary
Constructors Constructor Description LocalBrokerData()LocalBrokerData(java.lang.String webServiceUrl, java.lang.String webServiceUrlTls, java.lang.String pulsarServiceUrl, java.lang.String pulsarServiceUrlTls)Broker data constructor which takes in four URLs to satisfy the contract of ServiceLookupData.LocalBrokerData(java.lang.String webServiceUrl, java.lang.String webServiceUrlTls, java.lang.String pulsarServiceUrl, java.lang.String pulsarServiceUrlTls, java.util.Map<java.lang.String,AdvertisedListener> advertisedListeners)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcleanDeltas()booleanequals(java.lang.Object o)Since the broker data is also used as a lock for the broker, we need to have a stable comparison operator that is not affected by the actual load on the broker.java.util.Map<java.lang.String,AdvertisedListener>getAdvertisedListeners()org.apache.pulsar.policies.data.loadbalancer.ResourceUsagegetBandwidthIn()org.apache.pulsar.policies.data.loadbalancer.ResourceUsagegetBandwidthOut()java.lang.StringgetBrokerVersionString()java.util.Set<java.lang.String>getBundles()java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats>getBundleStats()org.apache.pulsar.policies.data.loadbalancer.ResourceUsagegetCpu()org.apache.pulsar.policies.data.loadbalancer.ResourceUsagegetDirectMemory()java.util.Set<java.lang.String>getLastBundleGains()java.util.Set<java.lang.String>getLastBundleLosses()java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats>getLastStats()longgetLastUpdate()java.lang.StringgetLoadReportType()doublegetMaxResourceUsage()doublegetMaxResourceUsageWithWeight(double cpuWeight, double memoryWeight, double directMemoryWeight, double bandwidthInWeight, double bandwidthOutWeight)doublegetMaxResourceUsageWithWeightWithinLimit(double cpuWeight, double memoryWeight, double directMemoryWeight, double bandwidthInWeight, double bandwidthOutWeight)org.apache.pulsar.policies.data.loadbalancer.ResourceUsagegetMemory()doublegetMsgRateIn()doublegetMsgRateOut()doublegetMsgThroughputIn()doublegetMsgThroughputOut()intgetNumBundles()intgetNumConsumers()intgetNumProducers()intgetNumTopics()java.util.Optional<java.lang.String>getProtocol(java.lang.String protocol)java.util.Map<java.lang.String,java.lang.String>getProtocols()java.lang.StringgetPulsarServiceUrl()java.lang.StringgetPulsarServiceUrlTls()java.lang.StringgetWebServiceUrl()java.lang.StringgetWebServiceUrlTls()inthashCode()booleanisNonPersistentTopicsEnabled()booleanisPersistentTopicsEnabled()java.lang.StringprintResourceUsage()voidsetAdvertisedListeners(java.util.Map<java.lang.String,AdvertisedListener> advertisedListeners)voidsetBandwidthIn(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage bandwidthIn)voidsetBandwidthOut(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage bandwidthOut)voidsetBrokerVersionString(java.lang.String brokerVersionString)voidsetBundles(java.util.Set<java.lang.String> bundles)voidsetCpu(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage cpu)voidsetDirectMemory(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage directMemory)voidsetLastBundleGains(java.util.Set<java.lang.String> lastBundleGains)voidsetLastBundleLosses(java.util.Set<java.lang.String> lastBundleLosses)voidsetLastStats(java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> lastStats)voidsetLastUpdate(long lastUpdate)voidsetMemory(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage memory)voidsetMsgRateIn(double msgRateIn)voidsetMsgRateOut(double msgRateOut)voidsetMsgThroughputIn(double msgThroughputIn)voidsetMsgThroughputOut(double msgThroughputOut)voidsetNonPersistentTopicsEnabled(boolean nonPersistentTopicsEnabled)voidsetNumBundles(int numBundles)voidsetNumConsumers(int numConsumers)voidsetNumProducers(int numProducers)voidsetNumTopics(int numTopics)voidsetPersistentTopicsEnabled(boolean persistentTopicsEnabled)voidsetProtocols(java.util.Map<java.lang.String,java.lang.String> protocols)voidupdate(LocalBrokerData other)Using another LocalBrokerData, update this.voidupdate(SystemResourceUsage systemResourceUsage, java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> bundleStats)Using the system resource usage and bundle stats acquired from the Pulsar client, update this LocalBrokerData.
-
-
-
Constructor Detail
-
LocalBrokerData
public LocalBrokerData()
-
LocalBrokerData
public LocalBrokerData(java.lang.String webServiceUrl, java.lang.String webServiceUrlTls, java.lang.String pulsarServiceUrl, java.lang.String pulsarServiceUrlTls)Broker data constructor which takes in four URLs to satisfy the contract of ServiceLookupData.
-
LocalBrokerData
public LocalBrokerData(java.lang.String webServiceUrl, java.lang.String webServiceUrlTls, java.lang.String pulsarServiceUrl, java.lang.String pulsarServiceUrlTls, java.util.Map<java.lang.String,AdvertisedListener> advertisedListeners)
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object o)
Since the broker data is also used as a lock for the broker, we need to have a stable comparison operator that is not affected by the actual load on the broker.- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
update
public void update(SystemResourceUsage systemResourceUsage, java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> bundleStats)
Using the system resource usage and bundle stats acquired from the Pulsar client, update this LocalBrokerData.- Parameters:
systemResourceUsage- System resource usage (cpu, memory, and direct memory).bundleStats- The bundle stats retrieved from the Pulsar client.
-
update
public void update(LocalBrokerData other)
Using another LocalBrokerData, update this.- Parameters:
other- LocalBrokerData to update from.
-
getMaxResourceUsage
public double getMaxResourceUsage()
-
printResourceUsage
public java.lang.String printResourceUsage()
-
getMaxResourceUsageWithWeight
public double getMaxResourceUsageWithWeight(double cpuWeight, double memoryWeight, double directMemoryWeight, double bandwidthInWeight, double bandwidthOutWeight)
-
getMaxResourceUsageWithWeightWithinLimit
public double getMaxResourceUsageWithWeightWithinLimit(double cpuWeight, double memoryWeight, double directMemoryWeight, double bandwidthInWeight, double bandwidthOutWeight)
-
getLoadReportType
public java.lang.String getLoadReportType()
-
getCpu
public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getCpu()
- Specified by:
getCpuin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setCpu
public void setCpu(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage cpu)
-
getMemory
public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getMemory()
- Specified by:
getMemoryin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setMemory
public void setMemory(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage memory)
-
getDirectMemory
public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getDirectMemory()
- Specified by:
getDirectMemoryin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setDirectMemory
public void setDirectMemory(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage directMemory)
-
getBandwidthIn
public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getBandwidthIn()
- Specified by:
getBandwidthInin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setBandwidthIn
public void setBandwidthIn(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage bandwidthIn)
-
getBandwidthOut
public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getBandwidthOut()
- Specified by:
getBandwidthOutin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setBandwidthOut
public void setBandwidthOut(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage bandwidthOut)
-
getLastBundleGains
public java.util.Set<java.lang.String> getLastBundleGains()
-
cleanDeltas
public void cleanDeltas()
-
setLastBundleGains
public void setLastBundleGains(java.util.Set<java.lang.String> lastBundleGains)
-
getLastBundleLosses
public java.util.Set<java.lang.String> getLastBundleLosses()
-
setLastBundleLosses
public void setLastBundleLosses(java.util.Set<java.lang.String> lastBundleLosses)
-
getLastUpdate
public long getLastUpdate()
- Specified by:
getLastUpdatein interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setLastUpdate
public void setLastUpdate(long lastUpdate)
-
getBundles
public java.util.Set<java.lang.String> getBundles()
-
setBundles
public void setBundles(java.util.Set<java.lang.String> bundles)
-
getLastStats
public java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> getLastStats()
-
setLastStats
public void setLastStats(java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> lastStats)
-
getNumTopics
public int getNumTopics()
- Specified by:
getNumTopicsin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setNumTopics
public void setNumTopics(int numTopics)
-
getNumBundles
public int getNumBundles()
- Specified by:
getNumBundlesin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setNumBundles
public void setNumBundles(int numBundles)
-
getNumConsumers
public int getNumConsumers()
- Specified by:
getNumConsumersin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setNumConsumers
public void setNumConsumers(int numConsumers)
-
getNumProducers
public int getNumProducers()
- Specified by:
getNumProducersin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setNumProducers
public void setNumProducers(int numProducers)
-
getMsgThroughputIn
public double getMsgThroughputIn()
- Specified by:
getMsgThroughputInin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setMsgThroughputIn
public void setMsgThroughputIn(double msgThroughputIn)
-
getMsgThroughputOut
public double getMsgThroughputOut()
- Specified by:
getMsgThroughputOutin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setMsgThroughputOut
public void setMsgThroughputOut(double msgThroughputOut)
-
getMsgRateIn
public double getMsgRateIn()
- Specified by:
getMsgRateInin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setMsgRateIn
public void setMsgRateIn(double msgRateIn)
-
getMsgRateOut
public double getMsgRateOut()
- Specified by:
getMsgRateOutin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setMsgRateOut
public void setMsgRateOut(double msgRateOut)
-
setBrokerVersionString
public void setBrokerVersionString(java.lang.String brokerVersionString)
-
getBrokerVersionString
public java.lang.String getBrokerVersionString()
- Specified by:
getBrokerVersionStringin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
getWebServiceUrl
public java.lang.String getWebServiceUrl()
- Specified by:
getWebServiceUrlin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
getWebServiceUrlTls
public java.lang.String getWebServiceUrlTls()
- Specified by:
getWebServiceUrlTlsin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
getPulsarServiceUrl
public java.lang.String getPulsarServiceUrl()
- Specified by:
getPulsarServiceUrlin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
getPulsarServiceUrlTls
public java.lang.String getPulsarServiceUrlTls()
- Specified by:
getPulsarServiceUrlTlsin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
isPersistentTopicsEnabled
public boolean isPersistentTopicsEnabled()
- Specified by:
isPersistentTopicsEnabledin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setPersistentTopicsEnabled
public void setPersistentTopicsEnabled(boolean persistentTopicsEnabled)
-
isNonPersistentTopicsEnabled
public boolean isNonPersistentTopicsEnabled()
- Specified by:
isNonPersistentTopicsEnabledin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setNonPersistentTopicsEnabled
public void setNonPersistentTopicsEnabled(boolean nonPersistentTopicsEnabled)
-
getBundleStats
public java.util.Map<java.lang.String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> getBundleStats()
- Specified by:
getBundleStatsin interfaceorg.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
-
setProtocols
public void setProtocols(java.util.Map<java.lang.String,java.lang.String> protocols)
-
getProtocols
public java.util.Map<java.lang.String,java.lang.String> getProtocols()
- Specified by:
getProtocolsin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
getProtocol
public java.util.Optional<java.lang.String> getProtocol(java.lang.String protocol)
- Specified by:
getProtocolin interfaceorg.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
-
getAdvertisedListeners
public java.util.Map<java.lang.String,AdvertisedListener> getAdvertisedListeners()
-
setAdvertisedListeners
public void setAdvertisedListeners(java.util.Map<java.lang.String,AdvertisedListener> advertisedListeners)
-
-