Reuse of Open HTTP Connections
This article explains how the uberAgent endpoint agent handles open HTTP connections.
uberAgent makes use of HTTP(S) to send the collected data from the endpoint to some types of backends, for example, Splunk HEC, Elasticsearch, or Apache Kafka (via Confluent REST Proxy).
All HTTP(S) communication initiated by uberAgent is performed through libcurl (a variant of curl), which is probably the highest-quality networking library available today.
Libcurl automatically caches and reuses HTTP(S) connections. As the documentation states:
Reusing a connection instead of creating a new one offers significant benefits in speed and required resources.
uberAgent can be configured with multiple servers per receiver. When there is more than one server per receiver, uberAgent randomly switches between servers every 100 seconds. If a server does not respond, uberAgent fails over to the next server in the list. This algorithm ensures that the load is distributed evenly between backend servers.