我发生了一些我不太了解的事情,它可能与 Memcached 相关,也可能不相关。我当前的设置是三个tomcat节点都在同一台机器上,由Apache HTTP 2.4负载平衡,每个节点上运行Lucee 4.5。我在虚拟机中使用 Memcached 作为会话存储。
一切似乎都很好。但是,当我查看 Memcached 项目的内容时,我注意到每 60 秒(如发条)都会根据我正在运行的节点数量添加新键。因此,如果我让所有三个节点都运行,那么每 60 秒就会有三个密钥添加到缓存中,而我的初始会话密钥仍然存在,就像它应该存在的那样。在下图中,您将看到stats cachedump 12 100
它列出的第一个项目,这是我在提出第一个请求后的初始会话。
因为每分钟添加相同数量的密钥,所以有节点运行它让我想知道这是我错误的 Apache 或 Tomcat 中的设置,还是我所看到的对于 Memcached 来说是常见的(可疑)。我的猜测是 Tomcat,但我没有什么可做的,我对这个的所有搜索都没有结果,所以我希望这里有人能指出我解决这个问题的正确方向。这可能没什么大不了的,但似乎在不需要的时候存储了不必要的数据。
下面是我的 Apache 配置中处理负载平衡的代理区域的片段
<Proxy balancer://nodes>
BalancerMember ajp://127.0.0.1:5009 loadfactor=5
BalancerMember ajp://127.0.0.1:6009 loadfactor=5
BalancerMember ajp://127.0.0.1:7009 loadfactor=5
# BalancerMember ajp://192.168.56.101:8009 route=node1 loadfactor=5
# BalancerMember ajp://192.168.56.102:8009 route=node2 loadfactor=5
# BalancerMember ajp://192.168.56.103:8009 route=node3 loadfactor=5
ProxySet lbmethod=byrequests
</Proxy>
ProxyPreserveHost On
ProxyPassMatch ^/(.*)?$ balancer://nodes/$1$2