我们有一个在Azure VM上托管的API微服务基础设施。每个VM将托管几个API,这些API是在Kestrel上运行的独立站点。所有外部通信通过RP (在IIS上运行)进入。
我们有一些API是为接受外部请求而设计的,还有一些是仅用于内部API的。
内部API托管在标度集中,每个scaleset VM都是托管所有内部API的副本。在标尺前面有一个内部负载均衡器(ILB)/vip。根本的问题是,我们有内部API,它们调用托管在同一标尺上的其他内部API。理想情况下,这些呼叫将转到VIP (使用内部DNS)和VIP将路由到刻度集中的机器之一。但是看起来Azure不允许this...per提供文档:
You cannot access the ILB VIP from the same Virtual Machines that are being load-balanced那么人们是如何用微型服务来建立这种关系的呢?我可以看到三种方式,其中没有一个是理想的:
任何关于其他人是如何处理这一问题的建议都将不胜感激。
谢谢!
发布于 2016-07-27 14:58:28
发布于 2016-08-02 13:19:13
@Cdelmas的答案在服务发现上是很棒的。请允许我补充一下我的想法:
对于像您这样的服务,您还可以查看Netflix的ZUUL服务器代理和客户端负载平衡。您甚至可以在Eureka顶部使用Histrix进行延迟和容错。Netflix在这方面遥遥领先。
如果您想使用GO语言,您也可以为您的目的查看Consul.io产品。它有一个可编写脚本的配置来更好地管理您的服务,允许高级的安全配置和非rest端点的使用。Eureka也这样做,但需要添加一个configuration (Netflix、、Spring )、使用ZUUL/Sidecar进行编码的安全性和支持访问。
https://stackoverflow.com/questions/38531170
复制相似问题