在关于端口绑定的12 Factor文章中
http://12factor.net/port-binding每个应用程序都有一个要求
是自包含的,没有注入运行时,例如Tomcat的.对于
这个建议是什么原因……微服务自包含应用程序的优点是什么?
http://12factor.net/port-binding每个应用程序都有一个要求
是自包含的,没有注入运行时,例如Tomcat的.对于
这个建议是什么原因……微服务自包含应用程序的优点是什么?
解决方法
要了解有关端口绑定和自包含应用程序的规则,从设计用于运行12因素应用程序的平台(如
Heroku或
Deis)的角度查看内容会很有帮助.
这些平台正在流程级别扩展应用程序.当进程按比例放大时,平台会尝试将这些额外的工作人员放在路由网格后面,以便他们可以开始提供流量.如果应用程序不是自包含的,并且例如使用mod_jk紧密耦合到前端Apache服务器 – 则无法通过运行更多孤立的工作进程来扩展.
存在端口绑定以解决平台级别的“端口代理”问题.如果每个应用程序工作者在端口80上进行侦听,则会发生冲突.为了解决这个问题,端口绑定是一种约定,通过该约定,应用程序侦听平台已分配的端口 – 并将其作为$PORT环境变量传入.这确保了a)应用程序工作者侦听正确的端口并且b)平台知道将路由到该工作者的流量路由到何处.