Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
petgr138
Partner - Contributor III
Partner - Contributor III

Load balancing specific apps on a specific node

Hi,

Our setup is:

Qlik Sense enterprise April 2019 patch 1

4 nodes:

  • Node 1: all services installed, acts as central node
  • Node 2: should handle reloads and load balancing for all non-super-user apps
  • Node 3: Proxy node which has 1 virtual proxy that should be used by all users
  • Node 4: alls services installed, should handle all reloads and load balancing for all super-user app

We want to set up load balancing rules based on app.owner so that all apps that are owned by super-users will be reloaded and load balanced only by Node 4 and all other apps should be load balanced by Node 1 and Node 2.

Is this possible, and in that case, how do we write the rules?

Best regards
Petter Grundström

Labels (1)
5 Replies
Levi_Turner
Employee
Employee

How are you defining a super-user? A group? A custom property? A role? Some combination of those three?

petgr138
Partner - Contributor III
Partner - Contributor III
Author

A super-user is a member of a specific AD group i.e. user.group

Levi_Turner
Employee
Employee

With all things rules related, there are multiple ways of accomplishing this. The way that I'd go about it is:

  • Disable the Load Balancing Rule named ResourcesOnNonCentralNodes
    • This rule sends all apps not in the monitoring apps stream to all RIMs
  • Find the user.group you're interested in using. Example:

user.group.png

  •  Create a custom property (name is arbitrary; value should match the group you're using). Example:

lb-custom_property.png

  • Apply that custom property to the node or nodes that you want to target.
    • Example syntax: ((resource.owner.group=node.@group) or (resource.owner.group!="QlikTeamAdmin" and node.@group.Empty()))
      • Explanation: Match the custom property on the node to the user's group OR send all apps owned by users who aren't in the single group to any node or nodes which does not have the previously created custom property assigned
    • Example:

lb-nodes.png

  • Write an appropriate rule. Example:

lb-rule.png

 

petgr138
Partner - Contributor III
Partner - Contributor III
Author

Will this ensure that the apps owned by the super users are always load balanced by the specific node and that they can't be load balanced by the central node?
Qlik Help says this:
"The default algorithm used for load balancing is round-robin, where the load is evenly distributed between the available nodes on the multi-node site. However, any subsequent sessions from the same user/client will open on the current engine node, instead of following the round-robin."
Which would indicate that if a super user starts a session which is load balanced by the central node, all the subsequent sessions, including ones for apps owned by the super user.

Levi_Turner
Employee
Employee

> Will this ensure that the apps owned by the super users are always load balanced by the specific node and that they can't be load balanced by the central node?

In the example the apps own by super users would be available on the node with the name RIM1. You cannot selectively exclude applications from the Central node (this is from the load balancing rule named ResourcesOnCentralNode which is uneditable).

> "The default algorithm used for load balancing is round-robin, where the load is evenly distributed between the available nodes on the multi-node site. However, any subsequent sessions from the same user/client will open on the current engine node, instead of following the round-robin."
> Which would indicate that if a super user starts a session which is load balanced by the central node, all the subsequent sessions, including ones for apps owned by the super user.

 

So, taking a step back, load balancing rules distribute apps across servers / compute resources. They do not govern what a user can see. That's handled by security rules. With that in mind, with that style of rule, any user who can view an app which is owned by a super user would use the compute resources on RIM1. Any other app which a user can see would use the compute resources on RIM2.