Amazon web services Spring Boot-不同的系统(eureka、zuul、ribbon、nginx)用于什么?

Amazon web services Spring Boot-不同的系统(eureka、zuul、ribbon、nginx)用于什么?,amazon-web-services,spring-boot,nginx,microservices,netflix-zuul,Amazon Web Services,Spring Boot,Nginx,Microservices,Netflix Zuul,我一直在使用spring,现在想学习springboot和微服务。我了解microservice的全部内容及其工作原理。在浏览文档时,我遇到了许多用于开发microservices以及spring boot的东西,我对此感到非常困惑 我列出了以下系统和问题: Netflix Eureka-我知道这是服务发现平台。 所有服务将注册到eureka服务器和所有 microservices是eureka客户端。现在我怀疑的是,没有 API网关此服务注册表有任何用途吗?这是 了解service regis

我一直在使用
spring
,现在想学习
springboot
和微服务。我了解microservice的全部内容及其工作原理。在浏览文档时,我遇到了许多用于开发
microservices
以及
spring boot
的东西,我对此感到非常困惑

我列出了以下系统和问题:

  • Netflix Eureka-我知道这是服务发现平台。 所有
    服务
    将注册到
    eureka
    服务器和所有
    microservices
    eureka
    客户端。现在我怀疑的是,没有 API网关此服务注册表有任何用途吗?这是 了解service registry的实际使用
  • ZUULApi网关-我知道ZUUL可以用作API网关,它基本上是一个负载平衡器,调用适当的 与请求URL相对应的微服务。这是一种假设吗 对的api网关是否会与Eureka交互以获取 适当的微服务

  • NGINX-我读过
    NGINX
    也可以用作API网关吗?可能吗?此外,我还阅读了一些其他地方的文章,如
    NGINX
    可以用作服务注册表,也就是作为Eureka的替代品!因此,哪一个是正确的?Api网关或服务注册表或两者?我知道
    nginx
    是一个web服务器,
    reverse proxy
    可以进行强大的配置

  • AWS api网关-这是否也可以用作
    ZUUL
    的替代方案

  • 功能区-用于什么
    功能区
    ?我不明白

  • AWS ALB-这也可用于负载平衡。因此,如果我们有
    AWS ALB
    ,我们需要ZUUL吗

  • 请帮忙

    如果没有API网关,此服务注册表是否有任何用途

    对。例如,您可以使用它来定位所有微服务的(IP和端口)。这对于devops类型的工作很方便。例如,在我参与的一个项目中,我们使用Eureka查找我们的微服务的所有实例,并ping它们的状态(/health,/info)

    我知道ZUUL可以用作API网关,它基本上是一个负载平衡器,调用与请求URL对应的适当微服务。这个假设正确吗

    是的,但它可以做得更多。本质上,因为Zuul更像是一个框架/库,您可以将其转化为一个微服务,您可以对其进行编码,以实现您可以提出的任何类型的路由逻辑。从这个意义上讲,它非常强大。例如,假设您希望根据一天中的时间或任何其他外部因素更改路线,使用Zuul您可以做到这一点

    api网关是否会与Eureka交互以获得适当的微服务

    对。您可以将Zuul配置为指向Eureka。它成为Eureka的客户端,甚至订阅Eureka进行实时更新(实例已加入或离开)

    我看过NGINX还可以用作API网关吗?此外,我还阅读了一些类似NGINX的地方可以用作服务注册中心,也就是作为Eureka的替代品!因此,哪一个是正确的?Api网关或服务注册表或两者

    Nginx功能非常强大,可以执行API网关类型的工作。但是有一些主要的区别。抱歉,微服务无法动态注册到Nginx,如果我错了,请纠正我。。。就像他们用尤里卡一样。第二,虽然我知道Nginx是高度(非常高度)可配置的,但我怀疑它的配置功能与Zuul的路由功能并不接近(因为在Zuul中有整个Java语言供您使用,以编写路由逻辑)。可能有一些服务发现解决方案可以与Nginx一起使用。所以Nginx将负责路由等等,但服务发现仍然需要一个解决方案

    这也可以作为ZUUL的替代品吗

    是的,AWS API网关可以用作Zuul的替代品。与Nginx一样,这里的问题是服务发现。AWS API网关允许您将逻辑应用于路由。。。虽然没有祖尔那么开放

    用什么色带

    虽然你可以直接使用色带库,但大多数情况下它都被认为是ZUUL的内部依赖。它可以帮助Zuul完成简单的负载平衡。请注意,此项目处于维护模式,不再推荐

    这也可以用于负载平衡。因此,如果我们有AWS ALB,我们需要ZUUL吗


    您可以将ALB与ECS(弹性容器服务)一起使用,以取代Eureka/Zuul。ECS将为您负责服务发现,并将特定服务的所有实例映射到目标组。然后,ALB路由表可以根据简单的路由规则路由到目标组。ALB中的路由规则非常简单,但会随着时间的推移而改进。

    不同的系统可用于spring boot附带的
    微服务的工作:

  • Eureka: 可能是第一个推出的微服务。Eureka是一个服务注册表,意味着它知道哪些微服务正在运行,以及在哪个端口中运行。Eureka正在作为一个sperate应用程序部署,我们可以使用
    @EnableEurekaServer
    注释以及
    @SpringBootAPplication
    将该应用程序作为Eureka服务器。因此,我们的eureka服务注册已启动并运行。从现在起,所有微服务都将通过在所有部署的微服务中使用
    @EnableDiscoveryClient
    注释以及
    @SpringBootAPplication
    在该eureka服务器中注册

  • Zuul:Zuul是一个
    负载平衡器
    路由
    应用程序和
    反向代理
    服务器