Does horizontal scaling for RFA 8 provide failover as well ?
In case i use two hosts for RFA horizontal scaling and one of the host goes down. What is the impact to my subscription in that scenario ?
Hello @ankit3.srivastava
Horizontal Scaling is used to further distribute the processing of events between multiple CPU cores. Hence, the number of events can be processed in time by multiple threads and there are no a lot of events pending in the queue which can cause Out-of-Memory.
RFA attempts to connect to the server(s) in the serverList configuration of connection node. If your serverList contains only 1 hostname/IP address, when the host/server goes down RFA still attempts to connect to the down server. To make RFA attempt to connect to another server when the connected server goes down, you have to set the serverList to have multiple hostname/IP address. For example:
The figure above shows the serverList contains 3 hosts. Assume that RFA connects to the first server(192.168.27.99) then the server goes down. Next, RFA attempt to connect to the second server(192.168.27.11). If it fails, it attempt to the third server(192.168.27.48).
In summary, you can use Horizontal Scaling with failover by configuring multiple hosts in the serverList parameters.
As Olivier mentioned in the answer below, Horizontal Scaling and Failover have different purposes.
Back to your question, when using both HS and Failover together, what if one of the servers goes down.
Referring to Pimchaya's example, RFA will connect to the first server in the list (192.168.27.99). If the others are down, it doesn't affect to the current connection established. On the other hand, it will switch to the next valid server in the list.
Here there are possibilities:
@ankit3.srivastava Are you referring to horizontal scaling as described in RFA dev guide?
In that case, scaling is in reference to running multiple threads - typically one per core, and does not provide any builtin failover. Your app will have to identify failure and implement re-subscription to the active connection.
The elements of the answer to your question have been given by Pimchaya, but I think there is confusion here, so let me try to clarify. The confusion is between the horizontal scaling of the real time platform (TREP) and the horizontal scaling of the RFA application.
In the first case, the platform can be scaled up to match a growing number of client applications. To do so, the platform admin adds more hosts (ADS - Advanced Distribution Server) to the platform. Having a redundancy of ADS also enables failover if one of the ADS goes down.
In the second case, the application can be scaled up to match a growing number of incoming events. To do so, the application can run several threads that will dispatch RFA events in parallel. This is what Pimchaya explained in the first part of her answer.
Your question is about the RFA failover mechanism. As you understood, this is related to the platform horizontal scaling (or redundancy) but has nothing to do with the RFA horizontal scaling, hence the confusion. The answer to your question is given by Pimchaya in the second part of her answer. If your TREP has several hosts (ADS) then set their IPs in the serverList RFA parameter. This will enable the RFA failover mechanism.