Microservices AWS ELB vs服务注册表

Microservices AWS ELB vs服务注册表,microservices,amazon-elb,netflix-eureka,service-discovery,istio,Microservices,Amazon Elb,Netflix Eureka,Service Discovery,Istio,在微服务体系结构中,在代码或配置中硬编码服务的URL不是一个好的做法,因为可能会发生变化。为了实现这一点,我们使用服务发现模式。但是使用AWS ELB也可以实现同样的效果,一旦我向ELB注册了我的服务,如果我硬编码了它的URL,那么就不会因为ELB URL保持不变而改变服务的Ip 那么,在代码配置中对AWS ELB URL进行硬编码与使用Eureka、Istio等服务注册工具有什么区别呢?像Eureka这样的服务注册就是客户端服务发现的一个例子。 AWS ELB代表服务器端服务发现 请进行深入探

在微服务体系结构中,在代码或配置中硬编码服务的URL不是一个好的做法,因为可能会发生变化。为了实现这一点,我们使用服务发现模式。但是使用AWS ELB也可以实现同样的效果,一旦我向ELB注册了我的服务,如果我硬编码了它的URL,那么就不会因为ELB URL保持不变而改变服务的Ip


那么,在代码配置中对AWS ELB URL进行硬编码与使用Eureka、Istio等服务注册工具有什么区别呢?

像Eureka这样的服务注册就是客户端服务发现的一个例子。 AWS ELB代表服务器端服务发现


请进行深入探讨。

我看到了通过Eureka、Istio或AWS ELB等工具进行服务发现的两种主要不同之处

  • 在使用AWS ELB时,您有点依赖于云实现或云提供者。 现在,您的部署与云提供相结合。现在,在将来,如果您必须更改云(假设您出于某种原因想要在Azure上移动),那么迁移将导致一些额外的工作,因为您需要在新云上设置云服务发现的couter部分。但在直接使用Eureka或istio的情况下,您只需要在新的云平台上部署您的工件和相应的配置

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

  • 服务发现有两种模式:

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

    AWS ELB是服务器端服务发现 客户端与负载平衡器(或路由器)对话。路由器通过服务注册中心在内部发现服务地址,然后进一步呼叫目标服务

    主要区别——

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