Below is a quick guide on the load balancer rules to apply when hosting multiple Agent servers behind a load balancer.
Symphony Administration and messaging API calls are stateless. These types of requests can be forwarded to any Agent server that is available:
Real-time messaging API calls (e.g. Datafeed) are session-based. Once a Datafeed is created on an Agent server host, subsequent API calls must be made to the same Agent server host.
If you are using an F5 type load balancer, you can load balance requests to the same Agent server host by using one of the following:
source-ip: Directs API session requests to the same Agent server based solely on the source IP address of the calling application/bot.
cookie-injection: Initial API session request is injected with an HTTP cookie. This cookie is stored by the calling application/bot to ensure subsequent API calls connect to the same Agent to which the server previously connected.
Yes (source-ip or cookie-injection)
If you are using a DNS based load balancer, you can load balance requests to the same physical Agent server host by using DNS resolution.
When you access the FQDN for the Agent server farm, DNS resolution gives you a physical Agent server host to which you can connect. Your application should make note of this physical Agent server host and forward all subsequent API calls to this Agent server.
Ensure the following values are set
networkaddress.cache.ttl = 0networkaddress.cache.negative.ttl = 0
If an Agent server host fails, your application must manage the re-establishment of the connection. A failover from one server to another would require your application to re-establish a new datafeed channel.