What should be the way to solve this scenario?
I have a 4 node clustered SwitchYard installation on JBoss EAP (FSW). I deploy a clustered service to let's say node1, and node2, and NOT to node3 and node4. This service has a SOAP binding.
There are two methods of clustering available in SwitchYard:
- Using an SCA binding with clustering enabled on composite services/references, as described here.
- Using another protocol binding (e.g. SOAP, JMS) with clustering enabled outside of SY. For SOAP/HTTP, that would involve an external load balancer. For JMS, you get that with competing consumers talking to a JMS broker.
So the answer to the first part of your question depends on which style of clustering you want to employ.
I have a client that wants to make requests to this service, so it could balance the request between node1 and node2. Given that I'm using a custom WS stack to invoke my service, I need to provide a unique endpoint. I can not use HttpRemoteInvoker.
If you are using SOAP over HTTP, then I would expect this to be handled via an HTTP load balancer external to SwitchYard.
I can front my cluster with a Load Balancer, let's say, Apache, but as this scenario can happen multiple times, I do not want to provision multiple times my load balancer with rules on the balancing policies.
That's more in the domain of the specific load balancer you are using. I know that mod_cluster allows for dynamic update of endpoints, but I suspect you would need some custom work to get that hooked into SOAP endpoint registration within SY. I haven't tried, so I don't know how much work this would be.