This is an automated email from the ASF dual-hosted git repository.

bogong pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit df3e2cea1daefdba778e2d6a205b413af2766abb
Author: Yunze Xu <[email protected]>
AuthorDate: Tue Sep 28 22:14:08 2021 +0800

    Disable stats recorder for built-in PulsarClient (#12217)
    
    ### Motivation
    
    In `PulsarService`, there's a built-in client used in many places, like 
topic compaction, system topics read/write. It could also be used in protocol 
handlers. Different with the manually created Pulsar client, it can read the 
configured authentication params and TLS related configs for broker-to-broker 
communication.
    
    However, it doesn't change the default `statsIntervalSeconds` config, which 
means each time a producer/consumer/reader is created, a stats recorder 
(`ProducerStatsRecorderImpl` or `ConsumerStatsRecorderImpl`) will be created, 
in which there's a Netty `TimerTask` that prints stats periodically (the 
default interval is 1 minute). If there're many producers/consumers/readers 
created by this built-in client, the unnecessary CPU usage will be high.
    
    ### Modifications
    
    Configure the `statsIntervalSeconds` with zero value to disable stats 
recorder.
    
    (cherry picked from commit 52232e6e78e2ebf7a2d04489fd116c7f3abe7901)
---
 pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java
index a95ba68344a..6446da29071 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java
@@ -1386,6 +1386,8 @@ public class PulsarService implements AutoCloseable, 
ShutdownService {
                             
this.getConfiguration().getBrokerClientAuthenticationPlugin(),
                             
this.getConfiguration().getBrokerClientAuthenticationParameters()));
                 }
+
+                conf.setStatsIntervalSeconds(0);
                 this.client = new PulsarClientImpl(conf, ioEventLoopGroup);
             } catch (Exception e) {
                 throw new PulsarServerException(e);

Reply via email to