在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。
但在做容器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。
- 亲和性可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。
- 反亲和性主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是 N 分之一或者只是一个实例。
在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。
但在做容器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。