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 Object implements org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
Contains all the data that is maintained locally on each broker.
  • Field Details

    • loadReportType

      public static final String loadReportType
  • Constructor Details

    • LocalBrokerData

      public LocalBrokerData()
    • LocalBrokerData

      public LocalBrokerData(String webServiceUrl, String webServiceUrlTls, String pulsarServiceUrl, String pulsarServiceUrlTls)
      Broker data constructor which takes in four URLs to satisfy the contract of ServiceLookupData.
    • LocalBrokerData

      public LocalBrokerData(String webServiceUrl, String webServiceUrlTls, String pulsarServiceUrl, String pulsarServiceUrlTls, Map<String,AdvertisedListener> advertisedListeners)
  • Method Details

    • equals

      public boolean equals(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:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • update

      public void update(SystemResourceUsage systemResourceUsage, Map<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 String printResourceUsage()
    • getMaxResourceUsageWithWeight

      public double getMaxResourceUsageWithWeight(double cpuWeight, double memoryWeight, double directMemoryWeight, double bandwidthInWeight, double bandwidthOutWeight)
    • getLoadReportType

      public String getLoadReportType()
    • getCpu

      public org.apache.pulsar.policies.data.loadbalancer.ResourceUsage getCpu()
      Specified by:
      getCpu in interface org.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:
      getMemory in interface org.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:
      getDirectMemory in interface org.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:
      getBandwidthIn in interface org.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:
      getBandwidthOut in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setBandwidthOut

      public void setBandwidthOut(org.apache.pulsar.policies.data.loadbalancer.ResourceUsage bandwidthOut)
    • getLastBundleGains

      public Set<String> getLastBundleGains()
    • cleanDeltas

      public void cleanDeltas()
    • setLastBundleGains

      public void setLastBundleGains(Set<String> lastBundleGains)
    • getLastBundleLosses

      public Set<String> getLastBundleLosses()
    • setLastBundleLosses

      public void setLastBundleLosses(Set<String> lastBundleLosses)
    • getLastUpdate

      public long getLastUpdate()
      Specified by:
      getLastUpdate in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setLastUpdate

      public void setLastUpdate(long lastUpdate)
    • getBundles

      public Set<String> getBundles()
    • setBundles

      public void setBundles(Set<String> bundles)
    • getLastStats

      public Map<String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> getLastStats()
    • setLastStats

      public void setLastStats(Map<String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> lastStats)
    • getNumTopics

      public int getNumTopics()
      Specified by:
      getNumTopics in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setNumTopics

      public void setNumTopics(int numTopics)
    • getNumBundles

      public int getNumBundles()
      Specified by:
      getNumBundles in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setNumBundles

      public void setNumBundles(int numBundles)
    • getNumConsumers

      public int getNumConsumers()
      Specified by:
      getNumConsumers in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setNumConsumers

      public void setNumConsumers(int numConsumers)
    • getNumProducers

      public int getNumProducers()
      Specified by:
      getNumProducers in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setNumProducers

      public void setNumProducers(int numProducers)
    • getMsgThroughputIn

      public double getMsgThroughputIn()
      Specified by:
      getMsgThroughputIn in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setMsgThroughputIn

      public void setMsgThroughputIn(double msgThroughputIn)
    • getMsgThroughputOut

      public double getMsgThroughputOut()
      Specified by:
      getMsgThroughputOut in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setMsgThroughputOut

      public void setMsgThroughputOut(double msgThroughputOut)
    • getMsgRateIn

      public double getMsgRateIn()
      Specified by:
      getMsgRateIn in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setMsgRateIn

      public void setMsgRateIn(double msgRateIn)
    • getMsgRateOut

      public double getMsgRateOut()
      Specified by:
      getMsgRateOut in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setMsgRateOut

      public void setMsgRateOut(double msgRateOut)
    • setBrokerVersionString

      public void setBrokerVersionString(String brokerVersionString)
    • getBrokerVersionString

      public String getBrokerVersionString()
      Specified by:
      getBrokerVersionString in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • getWebServiceUrl

      public String getWebServiceUrl()
      Specified by:
      getWebServiceUrl in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • getWebServiceUrlTls

      public String getWebServiceUrlTls()
      Specified by:
      getWebServiceUrlTls in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • getPulsarServiceUrl

      public String getPulsarServiceUrl()
      Specified by:
      getPulsarServiceUrl in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • getPulsarServiceUrlTls

      public String getPulsarServiceUrlTls()
      Specified by:
      getPulsarServiceUrlTls in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • isPersistentTopicsEnabled

      public boolean isPersistentTopicsEnabled()
      Specified by:
      isPersistentTopicsEnabled in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setPersistentTopicsEnabled

      public void setPersistentTopicsEnabled(boolean persistentTopicsEnabled)
    • isNonPersistentTopicsEnabled

      public boolean isNonPersistentTopicsEnabled()
      Specified by:
      isNonPersistentTopicsEnabled in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setNonPersistentTopicsEnabled

      public void setNonPersistentTopicsEnabled(boolean nonPersistentTopicsEnabled)
    • getBundleStats

      public Map<String,org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats> getBundleStats()
      Specified by:
      getBundleStats in interface org.apache.pulsar.policies.data.loadbalancer.LoadManagerReport
    • setProtocols

      public void setProtocols(Map<String,String> protocols)
    • getProtocols

      public Map<String,String> getProtocols()
      Specified by:
      getProtocols in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • getProtocol

      public Optional<String> getProtocol(String protocol)
      Specified by:
      getProtocol in interface org.apache.pulsar.policies.data.loadbalancer.ServiceLookupData
    • getAdvertisedListeners

      public Map<String,AdvertisedListener> getAdvertisedListeners()
    • setAdvertisedListeners

      public void setAdvertisedListeners(Map<String,AdvertisedListener> advertisedListeners)