java – 12 Factor应用程序为什么要自包含?

在关于端口绑定的12 Factor文章中
http://12factor.net/port-binding每个应用程序都有一个要求
是自包含的,没有注入运行时,例如Tomcat的.对于
这个建议是什么原因……微服务自包含应用程序的优点是什么?

解决方法

要了解有关端口绑定和自包含应用程序的规则,从设计用于运行12因素应用程序的平台(如 HerokuDeis)的角度查看内容会很有帮助.

这些平台正在流程级别扩展应用程序.当进程按比例放大时,平台会尝试将这些额外的工作人员放在路由网格后面,以便他们可以开始提供流量.如果应用程序不是自包含的,并且例如使用mod_jk紧密耦合到前端Apache服务器 – 则无法通过运行更多孤立的工作进程来扩展.

存在端口绑定以解决平台级别的“端口代理”问题.如果每个应用程序工作者在端口80上进行侦听,则会发生冲突.为了解决这个问题,端口绑定是一种约定,通过该约定,应用程序侦听平台已分配的端口 – 并将其作为$PORT环境变量传入.这确保了a)应用程序工作者侦听正确的端口并且b)平台知道将路由到该工作者的流量路由到何处.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...