在 SAP BTP 的 Cloud Foundry 环境里,route这件事看起来像是点几下按钮就能完成的小动作,实则是把应用从容器里跑起来推进到业务可被访问、可被集成、可被治理的关键一步。很多团队在做 CAP、Node.js、Java、Python、甚至前端 approuter 的时候,明明应用已经cf push成功、实例也在 Running,却依旧被业务同事一句你给我的 URL 打不开拉回现实。绝大多数情况下,问题都绕不开 route:要么 route 没建好,要么 route 没有正确映射到应用,要么 route 被 quota 卡住了。
下面这篇文章会把创建 route这件事讲透:它是什么、由哪些部分组成、在 SAP BTP cockpit 里怎么创建、怎么映射、为什么会冲突、为什么会 404、为什么会遇到 quota exceeded,以及在真实项目里怎么用它做蓝绿发布、做微服务分流、做自定义域名落地。
route 到底解决了什么问题
在 Cloud Foundry 里,用户访问应用并不是直接打到某台 VM 或某个容器实例,而是通过平台的 routing 层把请求路由到正确的应用实例。Cloud Foundry 文档用更直白的方式描述:Gorouter 通过把应用和一个地址关联起来完成转发,这个地址就叫 route,关联动作叫 mapping。(