我有两个微服务和一个网站,它们都托管在IIS的同一框中,如下所示:
默认网站
要求:
我该怎么做?我知道IIS速率限制,ARR和URL重写,但是如何将所有这些放在一起?在同一盒子上托管的微服务中是否存在这种行为的典型模式?
答案 0 :(得分:1)
模式
有一个称为API Gateway的著名模式,我建议您将其作为首选。它基本上是一个用于处理所有请求的入口点,但是它不能像反向代理一样工作,它还可能包括限制,速率限制,身份验证等资源。
费率限制
客户端始终从外部网络访问应用程序的公共域,在外部网络中是监视费率的位置。虽然您的服务应该通过本地网络在它们之间进行通信,例如IP地址或服务名称(容器名称),但是这里没有控制权。当然,本地通信要比外部通信快得多。
SSL
由于您有一个处理请求的中心点,因此可以在此实例中设置SSL,它将监听HTTPS调用,将它们代理到内部服务。如果它们都在同一服务器上,则使用docker network进行配置并使它们一起工作非常容易。
网关API
作为API网关,我强烈建议您查看Kong。它易于使用,效果很好,即使在复杂的情况下,也可以解决大多数问题。
复杂场景
仅为了大致概述复杂的场景和可伸缩性,您将需要一些service discovery,它将通过服务集中请求的可用性和分发。例如:访问abc.example.com时,它可以将请求重定向到三个不同的服务实例(10.0.0.1、10.0.0.2、10.0.0.3)。 Consul是处理此问题的好工具。