cloud - PCF(蓝/绿部署)- 如何根据用户属性对用户进行分段/路由
问题描述
我正在尝试为蓝/绿部署的 PCF 上的用户细分寻找解决方案。我想在 PCF 上部署两个版本的 Java 应用程序,比如一个蓝色版本和一个绿色版本。现在,我想将一组特定的用户路由到 GREEN,其余的路由到 BLUE。我需要知道是否有办法让网关(例如zuul)根据用户的属性路由用户。并非所有必需的用户属性都在请求的标头中——它们存储在数据库中。当请求到来时,用户 id 在请求中。但在将用户分段/路由到 BLUE/GREEN 之前,我需要从数据库中检索他们的一些信息。
任何评论/建议将不胜感激!谢谢
解决方案
CloudFoundry 中没有任何东西可以提供这种能力。您可以使用 CF 做的最好的事情是使用路由将流量推送到不同的地方,这是历史上使用蓝/绿部署所做的。
如果您需要更多自定义控制,就像您所描述的那样,您需要有一个额外的路由层来实现您的自定义路由要求。
既然您提到了 Java,我建议您查看Spring Cloud Gateway。这是一种非常灵活的流量路由方式。
您需要进行设置,以便您的所有流量都通过 CF 上的映射公共路由发送到您推送的 SCG 应用程序。然后,SCG 应用程序会将流量路由到您的实际应用程序,这可能发生在公共路由上,或者更好的是使用 CloudFoundry 容器网络和内部路由。通过这种方式,您可以强制所有流量通过您的网关,因为其他应用程序没有公共访问权限。
https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#internal-routes
推荐阅读
- javascript - 解析对象数组以格式化数据
- reactjs - 如何让 React Material-UI 扩展面板向上打开?
- c++ - [CPP]为什么 Visual Studio 中的活动解决方案配置“调试”会出错?
- html - Angular 9 平台引导多个模块 - 在页面上运行多个应用程序
- visual-studio - 如何将 .NET Core 添加到 Visual Studio 2015 Pro
- android - 印地语/非英语单词显示不正确,使用字符串作为数据类型
- python - 在 Python 中解析单个 qouted 字典键和值
- java - Java:如何每分钟发送 x 封电子邮件
- php - FPDF:第一页的页脚与第二页的数据一起打印
- javascript - 正则表达式删除 {{ }} 之间的空格