今天遇到的问题,描述如下

本地配置

ngxin 端口 80

tomcat1 8080

tomcat2 8081 

tomcat3 8082

问题:tomcat1,2,3都部署的相同的程序并都启动,nginx对tomcat1和2做了负载均衡,当请求到来的时候,nginx把请求分发给tomat1,2,结果通过查看日志发现tomcat3也在处理请求,百思不解。

原因:程序本身机制问题。当一个请求转发给tomat1或2的时候,tomcat1,2会接受请求并取出请求参数,比如json串取出来,先放到rabbitMQ里而不是直接处理它。程序本身有一个对MQ的监听机制,当程序发现自己处于空闲状态时候,它会主动去MQ里取数据并处理。所以tomcatr3虽然没有接收到nginx转发过来的请求,但是因为它对MQ的监听,使得MQ里队列消息的时候它也会自动去取数据并处理,就导致了如题所描述的问题。

posted on 2017-05-27 13:31  wEndu  阅读(654)  评论(0编辑  收藏  举报