当前位置:  开发笔记 > 运维 > 正文

Heroku负载均衡器与Netflix zuul

如何解决《Heroku负载均衡器与Netflixzuul》经验,为你挑选了1个好方法。

根据这个答案/sf/ask/17360801/我想获得有关Heroku上微服务最佳实践的更多信息.

问题是哪种方法更好?

    将每个服务安装为独立应用程序,并使用其中一个作为REST"代理"(例如Netflix Eureka)?

要么

    创建基于docker的方法,例如Netflix Zuul作为负载均衡器?

就我自己而言,我已经看到两种方法的优点和缺点:

    优点:更好的可扩展性(易于创建更大负载的新机器).缺点:服务之间的通信换句话说"在heroku之外"换句话说:因为heroku应用程序有公共地址,每个人都可以直接连接到服务(不会扔掉Eureka),因为每个服务都需要提供一些身份验证方法并在每个服务之间共享其他 - 我认为这很容易发生风险.

    优点:易于重现生产环境以进行测试和开发(泊坞窗图像),服务之间的通信是"内部"完成的(图像到图像而不是应用程序到应用程序).缺点:难以扩展(我认为Heroku应用程序和docker镜像之间的负载平衡有点开销).

哪种方法更好?也许我可以将它们混合在一起?或者也许有一些不同的,更好的解决方案?

说实话,我确定唯一的事情就是我想将rabbitMQ用作消息队列......



1> rdegges..:

我更喜欢方法1(特别是因为我知道您已经在使用Heroku)。

Docker很棒,但是如果您在Heroku上进行部署,则好处是非常有限的。原因是Heroku已经完成了docker的所有工作:管理依赖项,安装和流程管理。Heroku已经为您完成了所有这些工作,而无需进行额外的Docker环境化工作。

关于负载平衡:这实际上并不重要。在这两种情况下,如果要在Heroku上运行,都将使用Heroku负载平衡器。这是因为无法“绕过” Heroku堆栈的该层。

如果您想使用Docker / zuul,则必须确定要在Heroku之外进行。这意味着您需要做各种其他事情,找到Docker主机,管理自己的基础架构等。

因此,在我看来,#1是更好的选择(如果您使用的是Heroku),因为:

    一切都已经为您做好了。

    您可以专注于编写可伸缩的代码,而不是管理各种其他事情。

    您所有的服务都将在同一个AWS区域中,因此即使它们将通过HTTP相互通信,也将非常快。

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有