【发布时间】:2015-02-05 09:03:44
【问题描述】:
在为大型系统(如 AWS)部署 SOA 时,有两种方法可用于服务交互。
让每个服务集群都在内部 elb 之后。客户端用对应的elb创建一个连接池,elb做循环平衡。
采用像 netflix eureka 这样的服务发现方法。
目前我们正在使用第一种方法,其中每个服务集群都位于内部 elb 之后,客户端通过 elb 进行通信,因此每个客户端实例只需维护 1 个池,即使用 elb 端点。
我对第二个方法有以下疑问。
- 转向服务发现和智能客户端架构,服务客户端知道所有服务实例(通过 eureka 服务或同等服务)并进行内部负载平衡,是否有好处?
- 在上述情况下,连接池如何工作?目前,每个客户端实例必须准确维护 1 个连接池,即与相应服务的 elb。但是对于富客户端,每个客户端都将拥有所有可以直接通信的服务实例端点。为每个请求建立连接效率不高,我猜每个客户端都有这么多连接池(每个服务实例 1 个)是一种过度杀伤力。
需要对以上两个问题的意见/建议。
【问题讨论】:
标签: load-balancing connection-pooling soa microservices