Question
Myknowtech B.V
NL
Last activity: 3 Apr 2017 2:57 EDT
Its Urgent :Load balancer to make the service routed to particular node
Hi all,
I have a requirement where i built a service activity.
The service activity use requestor ID to display some popup kind of in client browser(requestor).
Everything works fine when there is a single node. But for multi-node environment it doesnt work since requestor ID and Sevice run will not be in same node.
Say like i have node A, node B, Agent logged in (requestor) node B.
Is there a way like when a service request comes in, Service using node B should process the request not node A.
The incoming request can contain node ID as well as Requestor ID.
can we make use of load balancer functionality to achieve this.
Using CPM 7.1.3 over Pega 7.1.8
Thanks,
Prem
***Moderator Edit: Vidyaranjan | Updated Categories***
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Pegasystems Inc.
IN
Hello
I dont think it is possible for the LB Algorithm to route the response to the particular node.
One quick question, what is your use case where you expect the inputs from your service ? Are you accessing it via some flow or some other way ?
Pegasystems Inc.
US
The functionality you are trying to achieve is called "Sticky sessions" or "Session affinity" used interchangeably in load balancer terms.
Yes, you can configure Session Affinity in load balancers and PRPC needs Session Affinity to be enabled by default to function in a HA environment.
Please refer to the following PDN links -
https://docs-previous.pega.com/performance/load-balancing-multi-node-cluster
https://collaborate.pega.com/question/high-availability-administration-guide
A sample F-5 load balancer configuration is included in the above document.
Myknowtech B.V
NL
Thanks guys for the reply...
No its not abt sticky sessions.
Let me explain it.
I have 4 nodes in a environment. I am going to expose a REST service
Now my REST service URL will contain the node ID as a resource parameter. ( eg www.google.com/(.nodeID)?{query string}
The client of the REST service knows the node ID and wants to send the request to node A.
The client system hits the URL (www.google.com/nodeA?{ query string}
What happens now?. Will the service runs from node A.
What is the role of load balancer here?
Its urgent. Some one advice pls
Thanks,
Prem
Pegasystems Inc.
US
Prem,
Usually there is a load balancer a.k.a Webserver as the gateway for your incoming REST service requests from external clients. Since a REST service request is sent via HTTP, session ids can be maintained and tracked for client requests inside the load balancer on the first hit to a PRPC node. Based on these session ids and session affinity configuration the load balancer can ensure that it routes requests to a specific PRPC node and client state can be maintained via cookies or headers.
~Ankur
Myknowtech B.V
NL
Pegasystems Inc.
US
I am assuming the URLs have different hostname:port combination. In that case, I am wandering why do you even need to pass the node ID or have a load balancer. It Looks like the clients already know which hostname:port it has to hit.
Am I missing something here?
Myknowtech B.V
NL
Hey, Thanks for the reply I am at the same stage here.
I created a Connect-REST from node A and tried to hit the service with Hostname:port URL. ( corresponds to node B)
I am getting a 403 forbidden error.
Seems there must me some security or some authentication there to directly hit the URL.
Can you share your view.
Thanks,
Prem
Pegasystems Inc.
US
Hi Premkumar,
This would need a detailed investigation and webex, so please create a Pega Support ticket for the same.
Pegasystems Inc.
IN
Hi Premkumar,
If you go ahead and raise an SR with the support team as per suggestions from Ankur, please feel free to share the SR number here so that we can tag and track it for you here.
Thanks!