与 Azure FrontDoor 按比例平衡 2 API 个端点
balance 2 API endpoints proportionally with Azure FrontDoor
我正在尝试平衡 2 个 API 端点,在相同的 API 管理上,以实现 trought FrontDoor 的金丝雀发布。新端点的第一个端点(假设 www.contoso.com/api1) stands for old application release and the second (www.contoso.com/api2)。这样,我计划在 frontdoor 中创建一个后端池,以按比例平衡 90% 的请求到第一个端点和 10% 的请求到第二个端点。
我知道最好的方法是使用 2 个 API 管理服务(比如平衡具有不同部署的服务器),但是只使用一个是否可行?
提前致谢
经过一些研究,我发现 FrontDoor 只允许配置名称为 FQDN 的主机的后端池。我也用 TrafficManager 做了测试,但我得到了几乎相同的结果。两者均按权重进行流量平衡。
我发现平衡到 URL 端点的流量的唯一方法是通过“应用程序网关”,但没有平衡功能。
使用 choose and set-backend-service 策略的组合:
<choose>
<when condition="@(new Random().Next(10) < 9)">
<set-backend-service baseUrl="https://www.contoso.com/api1" />
</when>
<otherwise>
<set-backend-service baseUrl="https://www.contoso.com/api2" />
</otherwise>
</choose>
我正在尝试平衡 2 个 API 端点,在相同的 API 管理上,以实现 trought FrontDoor 的金丝雀发布。新端点的第一个端点(假设 www.contoso.com/api1) stands for old application release and the second (www.contoso.com/api2)。这样,我计划在 frontdoor 中创建一个后端池,以按比例平衡 90% 的请求到第一个端点和 10% 的请求到第二个端点。
我知道最好的方法是使用 2 个 API 管理服务(比如平衡具有不同部署的服务器),但是只使用一个是否可行?
提前致谢
经过一些研究,我发现 FrontDoor 只允许配置名称为 FQDN 的主机的后端池。我也用 TrafficManager 做了测试,但我得到了几乎相同的结果。两者均按权重进行流量平衡。
我发现平衡到 URL 端点的流量的唯一方法是通过“应用程序网关”,但没有平衡功能。
使用 choose and set-backend-service 策略的组合:
<choose>
<when condition="@(new Random().Next(10) < 9)">
<set-backend-service baseUrl="https://www.contoso.com/api1" />
</when>
<otherwise>
<set-backend-service baseUrl="https://www.contoso.com/api2" />
</otherwise>
</choose>