There are two approaches that can be used to interconnect services with SOA for large systems deployed in the cloud, such as AWS.
Each service cluster has an inner elbow. the client creates a connection pool with the corresponding elb and elb makes balancing in a circle.
works with a service lookup approach such as netflix eureka.
We are currently using the 1st approach, in which each service cluster is located behind an internal elbow, and clients exchange messages through elbs, so each client instance should support only 1 pool, that is, with the elb endpoint.
I have the following doubts about the second statement.
- Is there an advantage in accessing service discovery and the client’s intelligent architecture, where the service client knows all instances of the service (through the eureka service or equivalent) and performs internal load balancing?
- In the above example, how does joining join? Currently, each client instance must support exactly 1 connection pool, that is, with the corresponding elb service. But with a rich client, each client will have all the endpoints of the service instance that can be directly contacted. The connection for each request will be ineffective, and for each client there will be a lot of connection pools (one for each instance of the service) for each client.
An input / suggestion is required on the two above issues.