说明:这里仅说明单台服务器的情况.Docker Container 分别映射到不同的端口. Docker Container里通过tomcat对外提供服务.
1.如图,如果反向代理服务器发来一个请求,请求到达Nginx后,假设是匹配到Service A的Upstream,这时会根据nginx.conf里对应的分发算法,分配到端口10100或10101.
2.假设10100对应的docker container 内的tomcat挂了(通常是因为container所持有的可用内存不足,导致该container内的tomcat被杀掉.)
3.此时请求正好被分配到10100端口,这时就会导致出现404.
4.如果此时,我们做一份流量的复制,并且加上超时时间.则当请求发送到10100,超时或404后,再将复制的流量发送到10101端口即可.