New posts are disabled while we improve the user experience.

You can browse the site, or for urgent issues, raise a query at MyAccount.

question

Upvotes
Accepted
1 0 0 1

Does horizontal scaling for RFA 8 provide failover as well ?

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 ?

treprfarfa-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
9.6k 10 7 7

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.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@ankit3.srivastava,

As Olivier mentioned in the answer below, Horizontal Scaling and Failover have different purposes.

  • Horizontal Scaling is used to utilize CPU's cores, which increase event handling throughput via multi processing threads.
  • Failover is used to switch to the next server in the serverList when the current connecting server goes down.

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:

  • When all HS thread chains use the same serverList sequence, all HS thread chains will experience the same result.
  • Otherwise, each HS thread chains will encounter different result depending on serviceList sequence.
Upvotes
25.1k 68 15 21

@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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
942 9 9 14

Hi @ankit3.srivastava

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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.