Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 带AWS ECS的尤里卡_Amazon Web Services_Netflix Eureka_Netflix Zuul_Amazon Ecs_Spring Cloud Netflix - Fatal编程技术网

Amazon web services 带AWS ECS的尤里卡

Amazon web services 带AWS ECS的尤里卡,amazon-web-services,netflix-eureka,netflix-zuul,amazon-ecs,spring-cloud-netflix,Amazon Web Services,Netflix Eureka,Netflix Zuul,Amazon Ecs,Spring Cloud Netflix,我们使用Eureka和AWS ECS服务,可以扩展docker容器。 在ECS中,如果您在任务定义中省略主机端口,或将其指定为“0”,则会自动选择该端口并报告回服务。任务运行后,描述它应该显示它绑定到的端口 如果我们有几个EC2实例,Eureka如何解决使用哪个端口的问题。例如,来自EC2-A的服务A尝试从EC2-B调用服务B。因此,Eureka可以解析主机名,但无法识别暴露的端口。还有另一种解决方案 您可以创建应用程序loadbalancer和目标组,在其中可以启动docker容器 每个doc

我们使用Eureka和AWS ECS服务,可以扩展docker容器。 在ECS中,如果您在任务定义中省略主机端口,或将其指定为“0”,则会自动选择该端口并报告回服务。任务运行后,描述它应该显示它绑定到的端口


如果我们有几个EC2实例,Eureka如何解决使用哪个端口的问题。例如,来自EC2-A的服务A尝试从EC2-B调用服务B。因此,Eureka可以解析主机名,但无法识别暴露的端口。还有另一种解决方案

您可以创建应用程序loadbalancer和目标组,在其中可以启动docker容器

每个docker容器都将其主机名设置为loadbalancer的主机名。如果您需要一个漂亮的url,那么您可以利用Route53进行DNS路由

看起来是这样的:

使用Loadbalancer主机名进行服务发现

请求流

如果在不同的主机上有两个相同任务的容器,则这两个容器都将向eureka传送相同的loadbalancer主机名


使用此解决方案,您可以在AWS ECS上使用带docker的eureka,而不会失去动态端口映射的优势和灵活性。

还有另一种解决方案

您可以创建应用程序loadbalancer和目标组,在其中可以启动docker容器

每个docker容器都将其主机名设置为loadbalancer的主机名。如果您需要一个漂亮的url,那么您可以利用Route53进行DNS路由

看起来是这样的:

使用Loadbalancer主机名进行服务发现

请求流

如果在不同的主机上有两个相同任务的容器,则这两个容器都将向eureka传送相同的loadbalancer主机名

使用此解决方案,您可以在AWS ECS上使用带docker的eureka,而不会失去动态端口映射的优势和灵活性。

此问题已得到解决

目前ECS代理知道正在运行的端口

但我不建议在ECS上使用Eureka,因为应用程序负载平衡器也会这样做。它充当服务注册和发现。您不需要运行附加服务Eureka,ALB很便宜。

问题已经解决

目前ECS代理知道正在运行的端口


但我不建议在ECS上使用Eureka,因为应用程序负载平衡器也会这样做。它充当服务注册和发现。您不需要运行附加服务Eureka,ALB很便宜。

嗨@Aleksandr Filichkin

我不认为应用程序负载平衡器和服务注册中心做同样的事情。 主要区别在于,流量通过应用程序负载平衡器流动,而服务注册中心只为您提供了一个健康的端点,您的客户端可以直接寻址该端点,因此网络流量不会通过服务注册中心流动


便宜是一个非常相对的术语,可能对一些人来说是便宜的,也可能对其他人来说是不必要的开销

嗨@Aleksandr Filichkin

我不认为应用程序负载平衡器和服务注册中心做同样的事情。 主要区别在于,流量通过应用程序负载平衡器流动,而服务注册中心只为您提供了一个健康的端点,您的客户端可以直接寻址该端点,因此网络流量不会通过服务注册中心流动


便宜是一个非常相对的术语,可能对一些人来说是便宜的,也可能对其他人来说是不必要的开销

所以,如果我们有静态Docker端口,Eureka可以很好地与AWS ESC配合使用。我们只需要公开这个端口,然后Eureka就可以使用AmazonInfo解析AWS主机,但如果您想使用ECS自动调用功能,Eureka无法帮助您。实际上,我们可以将Eureka与EcsautoCalling一起使用,而Docker只能与Docker网络主机Docker run-net=host一起使用。但这种方法并不好。对于Kubernetes来说,这没关系,因为每个Docker映像都在PodSo中隔离,如果我们有静态Docker端口,Eureka可以与AWS ESC配合使用。我们只需要公开这个端口,然后Eureka就可以使用AmazonInfo解析AWS主机,但如果您想使用ECS自动调用功能,Eureka无法帮助您。实际上,我们可以将Eureka与EcsautoCalling一起使用,而Docker只能与Docker网络主机Docker run-net=host一起使用。但这种方法并不好。对于Kubernetes来说,这没关系,因为每个Docker图像在Pod中都是孤立的,您可以将其添加为注释,而不是答案。请阅读规则。我希望,但我没有足够的stackoverflow point来评论其他人的答案。您可以将此添加为评论,而不是答案。请阅读规则。我希望,但我没有足够的stackoverflow point来评论其他人的答案。不使用eureka很好,但是微服务内部通信呢?使用eureka非常简单,我可以使用带有服务名称的假客户端。不使用eureka很好,但是微服务的内部通信呢?使用eureka非常简单,我可以使用带有服务名称的假客户端。