目前,我们有许多组件在REST和SOAP上公开其API,并且还存在Web应用程序的数量。下面是使用示例域模拟某些端点的一些端点的高级视图,将是example.com
restsvc.example.com/v2 --ELB ---> | svr1.example.com/v2 |
soapsvc.example.com/v3 --ELB ---> | svr2.example.com/v3 |
corpwebapp.example.com --ELB ---> | svr1.example.com/someapp/index.html |
ncorpwebapp.example.com --ELB ---> | svr2.example.com/anotherapp/index.html |
为了解决各种使用场景,我们引入了ESB,现在所有这些API甚至Web应用程序都通过ESB进行代理。
restsvc.example.com/v2 -ELB - > | esb.example.com:8280/service/v2 | - > | svr1.example.com/v2 |
soapsvc.example.com/v2 -ELB - > | esb.example.com:8280 / service / v3 | - > | svr2.example.com/v3 |
corpwebapp.example.com -ELB - > | esb.example.com:8380 / someapp / index.html | - > | svr1.example.com/someapp/index.html |
nonwebapp.example.com -ELB - > | esb.example.com:8480 / someapp / index.html | - > | svr2.example.com/anotherapp/index.html |
所有这些公共api都指向ESB,但现在ESB已经在不同的端口和端点公开了这些API和Web应用程序。例如:现在v2 app使用path / service / v2
侦听端口8280由于端点已更改,为了支持使用默认端口的现有端点,ELB必须满足这些要求。但这似乎与ELB紧密耦合,因为端口和路径之间需要进行一些转换。
我有几个问题
答案 0 :(得分:0)
在分析了一些信息并通过专家反馈后,我们将介绍这些政策并在我们的基础架构中实施。
理想情况下,ESB应该侦听公共端口(80或443)。然后,它应该查看请求详细信息并将请求路由到各种应用程序。它可以根据内容类型,请求URL等进行路由。
当需要在ELB和ESB之间映射变体数量时,ELB会将请求转发给一个或多个ESB。配置更改应该是简约的。问题中引入的实现在ELB端绑定了一些核心映射逻辑。可以更改ESB中的内部路由逻辑以满足此类要求。