首页 > 解决方案 > 具有动态端口的微服务

问题描述

我有一系列我一直在测试的微服务。最初它使用的是Service Fabric,但我已经改用我更喜欢的ConsulFabioNomad

在我的机器上的开发中,事情运行良好,但是我遇到了一些问题,实际上让 Fabio 以集群格式工作。

我有一个由 5 个节点组成的集群,每个节点运行 Consul、Fabio、Nomad。每个服务在运行时获取一个动态端口并成功注册自己。在服务运行的节点上,Fabio 正确地转发流量。但是,如果在不同的节点上使用相同的 fabio url,则流量将转发到正确的节点/端口,但是该节点/端口已关闭,因此连接不起作用。

例如,如果 ServiceA 在端口 1234 上的 MachineA 上运行,则http://MachineA:9999/ServiceA可以正常工作。
但是,在 MachineA 尝试在端口 1234 上启动与 MachineB 的连接后,http://MachineB/ServiceA失败。

我想,一个解决方案是添加防火墙规则,但这需要所有服务以管理员身份运行,这是我不想要的。

有没有办法通过法比奥支持这一点?

标签: portreverse-proxyconsulnomadfabio

解决方案


推荐阅读