@@ -96,7 +96,7 @@ HttpClient::HttpClient(const ComponentConfig& component_config, const ComponentC
9696 http_client_.SetConfig (bootstrap_config);
9797
9898 auto & config_component = context.FindComponent <components::DynamicConfig>();
99- subscriber_scope_ = components::DynamicConfig::NoblockSubscriber{config_component}.GetEventSource ().AddListener (
99+ subscriber_scope_ = components::DynamicConfig::NoblockSubscriber{config_component}.GetDiffSource ().AddListener (
100100 this , kName , &HttpClient::OnConfigUpdate
101101 );
102102
@@ -126,7 +126,19 @@ HttpClient::~HttpClient() {
126126
127127clients::http::Client& HttpClient::GetHttpClient () { return http_client_; }
128128
129- void HttpClient::OnConfigUpdate (const dynamic_config::Snapshot& config) {
129+ void HttpClient::OnConfigUpdate (const dynamic_config::Diff& diff) {
130+ const auto & config = diff.current ;
131+ const auto & prev_config_opt = diff.previous ;
132+ if (prev_config_opt) {
133+ const auto & prev_config = *prev_config_opt;
134+ if (config[::dynamic_config::HTTP_CLIENT_CONNECTION_POOL_SIZE] ==
135+ prev_config[::dynamic_config::HTTP_CLIENT_CONNECTION_POOL_SIZE] &&
136+ config[::dynamic_config::USERVER_HTTP_PROXY] == prev_config[::dynamic_config::USERVER_HTTP_PROXY] &&
137+ config[::dynamic_config::HTTP_CLIENT_CONNECT_THROTTLE] ==
138+ prev_config[::dynamic_config::HTTP_CLIENT_CONNECT_THROTTLE]) {
139+ return ;
140+ }
141+ }
130142 http_client_.SetConfig (clients::http::impl::Config{
131143 config[::dynamic_config::HTTP_CLIENT_CONNECTION_POOL_SIZE],
132144 config[::dynamic_config::USERVER_HTTP_PROXY],
0 commit comments