Class 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.LoadManagerReport
    Contains all the data that is maintained locally on each broker.
    • Field Detail

      • loadReportType

        public static final java.lang.String loadReportType
    • 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:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.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:
        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 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:
        getLastUpdate in interface org.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:
        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​(java.lang.String brokerVersionString)
      • getBrokerVersionString

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

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

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

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

        public java.lang.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 java.util.Map<java.lang.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​(java.util.Map<java.lang.String,​java.lang.String> protocols)
      • getProtocols

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

        public java.util.Optional<java.lang.String> getProtocol​(java.lang.String protocol)
        Specified by:
        getProtocol in interface org.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)