Details
-
Feature Request
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
Description
The current implementation of EJB/HTTP (the protocol allowing EJB client invocations over HTTP) makes use of a discovery step in which the client discovers which EJBs are deployed behind a load balancer by sending a special discovery request to the load balancer. Because load balancers are generally unaware of deployments on backend servers, this request only discovers which EJBs are deployed on the one backend server the load balancer forwards the request to. Consequently, the mechanism only works with sets of backend servers which have the same set of deployments available (homogeneous clusters)
This protocol could be improved in the case when the load balancer and a cluster of backend servers are based on Undertow and mod_cluster, as mod_cluster registers the context of every bean deployed in the cluster on the load balancer. This means that a discovery request could be processed by the load balancer itself and report on all deployed EJBs, even when the cluster is not homogenous and changing.
This would be a value-added feature for making EJB client invocations over HTTP.