Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Myke
Partner - Contributor
Partner - Contributor

Load Balancing for specific streams

I have a multi-node set up with one Rim node that handles Engine/Scheduler tasks.  The goal is to have this Rim node handle all the work/reloads from a specific stream, and have all other streams continue to use the Central node.

I've set up a virtual proxy for that load balances usage only to the Rim node, and when using the virtual proxy apps work where expected.

The issue is I also want to prevent all other streams from using the Rim node, ie forcing them to always be sent to Central for their scheduled tasks/reloads.

I disabled the default "ResourcesOnNonCentralNodes" rule, and added the following rules.

Setup 1

Rule for Load Balancing Specific Stream
((node.name="RimNode" and resource.stream.@CustomProperty="XYZ"))

Rule for Any Other Stream Load Balancing
((node.iscentral="false" and resource.stream.id!="a70ca8a5-1d59-4cc9-b5fa-6e207978dcaf" and resource.stream.@CustomProperty!="XYZ"))

With this setup, reloads occurred on both nodes

Setup 2

Rule for Load Balancing Specific Stream
((node.name="RimNode" and resource.stream.@CustomProperty="XYZ"))

Rule for Only Central Load Balancing
((node.iscentral="true" and resource.stream.@CustomProperty!="XYZ"))

With this set up, all reloads have happened on Central.


Labels (3)
1 Solution

Accepted Solutions
Bastien_Laugiero

Hello,

If I understand correctly you have a 2 nodes setup:

- Central node: Scheduler/Engine Master and Slave 

- Rim node: Scheduler/Engine Slave only

And you wish the rim node to reload all the application published to Stream A and let the Central node reload all the other application.

If that's correct, the challenge here is the rule ResourcesOnCentralNodes that gives the central node access to every application and that cannot be modified. So you won't be able to prevent the central node to reload an application published to Stream A.

To achieve what you are looking for, I believe you will need a 3 nodes setup:

- Central node: Scheduler Master only

- Rim node 1: Scheduler/Engine Slave only (reloading only apps published to Stream A)

- Rim node 2:  Scheduler/Engine Slave only (reloading the apps published to other streams)

Hope this helps

 

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.

View solution in original post

2 Replies
Bastien_Laugiero

Hello,

If I understand correctly you have a 2 nodes setup:

- Central node: Scheduler/Engine Master and Slave 

- Rim node: Scheduler/Engine Slave only

And you wish the rim node to reload all the application published to Stream A and let the Central node reload all the other application.

If that's correct, the challenge here is the rule ResourcesOnCentralNodes that gives the central node access to every application and that cannot be modified. So you won't be able to prevent the central node to reload an application published to Stream A.

To achieve what you are looking for, I believe you will need a 3 nodes setup:

- Central node: Scheduler Master only

- Rim node 1: Scheduler/Engine Slave only (reloading only apps published to Stream A)

- Rim node 2:  Scheduler/Engine Slave only (reloading the apps published to other streams)

Hope this helps

 

Bastien Laugiero
If a post helps to resolve your issue, please mark the appropriate replies as CORRECT.
rohitk1609
Master
Master

Hi,

For All reload tasks on Non central, you may let  ResourcesOnNonCentralNodes enabled and set Central scheduler as MASTER only and RIM node scheduler as SLAVE.

Consumption of resources on which RIM node or central node, depends on your virtual proxy load balancing.

Rest looks fine in your security rules.

For any help drop comment on:

https://community.qlik.com/t5/Qlik-Sense-Enterprise-Documents/Best-Practices-for-Qlik-Sense-Multi-No...

Thanks,

Rohit