AWS ELB与服务注册表

时间:2019-01-08 13:35:29

标签: microservices amazon-elb netflix-eureka service-discovery istio

在微服务架构中,将服务的URL硬编码在代码或配置中不是一个好习惯,因为这可能会发生变化。为此,我们使用服务发现模式。但是使用AWS ELB可以实现相同的目的。一旦我在ELB中注册了服务,并且如果我对它的URL进行了硬编码,那么由于ELB URL保持不变,就不会出现更改服务的Ip的情况。

那么,在代码配置中硬编码AWS ELB URL 和使用服务注册表工具(例如Eureka,Istio )有什么区别?

2 个答案:

答案 0 :(得分:1)

我看到通过Eureka,Istio或AWS ELB之类的工具进行服务发现有两个主要区别

  1. 在使用AWS ELB时,您是从属或云实施或云提供商。 现在,您的部署已与Cloud Provide结合在一起。现在,将来如果您必须更改云(例如,出于某种原因要迁移到Azure),则迁移将导致额外的工作量,因为您需要在新云上设置云服务发现的重要部分。但是,如果直接使用Eureka或istio,则只需在新的云平台上部署工件和相应的配置即可。

  2. 第二个区别是客户端在内部如何发现目标服务。

有两种发现服务的模式:

Istio的尤里卡客户端服务发现 客户端直接与服务注册表对话,并获取要调用的服务的完整地址(主机和端口)。因此,最终,客户端知道服务的主机和端口,并且客户端是对目标服务提出最终请求的客户端,因此,这称为客户端发现。

AWS ELB 是服务器端服务发现 客户端与负载均衡器(或路由器)对话。路由器通过服务注册表在内部发现服务地址,然后进一步调用以目标服务为目标。

主要区别

  • 客户端永远不需要知道目标服务的地址,或者客户端永远不需要知道目标服务的详细信息。
  • 客户端代码变得更简单,因为它不必处理服务发现。

答案 1 :(得分:0)

像Eureka这样的Service Registry是客户端服务发现的一个示例。 AWS ELB表示服务器端服务发现。

请通过-https://microservices.io/patterns/service-registry.html进行深潜。

相关问题