Wil*_*tin 8 java paas 12factor microservices
在关于端口绑定的12 Factor文章 http://12factor.net/port-binding中,要求每个应用程序都是自包含的,并且没有注入运行时,例如Tomcat.出于什么原因建议...微服务的自包含应用程序的优点是什么?
gab*_*rtv 10
要了解有关端口绑定和自包含应用程序的规则,从设计用于运行12因素应用程序的平台(如Heroku或Deis)的角度来看是很有帮助的.
这些平台正在流程级别扩展应用程序.当进程按比例放大时,平台会尝试将这些额外的工作人员放在路由网格后面,以便他们可以开始提供流量.如果应用程序不是自包含的,例如,使用紧密耦合到前端Apache服务器mod_jk,则无法通过运行更多孤立的工作进程进行扩展.
存在端口绑定以解决平台级别的"端口代理"问题.如果每个应用程序工作者在端口80上进行侦听,则会发生冲突.为了解决这个问题,端口绑定是一种约定,通过该约定,应用程序侦听平台已分配的端口 - 并将其作为$PORT环境变量传入.这确保了a)应用程序工作者侦听正确的端口并且b)平台知道将路由到该工作者的流量路由到何处.
我认为这是因为当需要扩展应用程序时,它为您提供了很大的灵活性。如果您使用 tomcat,则必须复制 .war 并将其放入另一个 tomcat 中,然后将您的请求负载平衡到其中一个。
相反,如果您的应用程序有一个独立的 http 服务器,您可以只在另一个端口运行另一个实例,而忘记所有 tomcat 的东西。您仍然需要对任一应用程序实例的请求进行负载平衡,但似乎更直接。
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |