В настоящее время я занимаюсь балансировкой нагрузки в своем проекте Spring. Я использовал веб-сервер Apache в качестве внешнего интерфейса для нескольких экземпляров Tomcat. Я использовал mod_jk для балансировки нагрузки. Когда я запустил его, если я выключил один сервер, мне пришлось снова войти в систему. Ранее я также пробовал это в более простом примере с программой примера сеанса Tomcat, и репликация сеанса работала нормально.
Это моя конфигурация для Apache httpd.conf
mod_jk:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/jk.log
JkLogLevel debug
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /test balancer <-- this is the spring program
JkMount /test/* balancer <-- this is the spring program
JkMount /jk_status status`
И это мой параметр works.properties:
workers.tomcat_home=/worker1
workers.java_home=$JAVA_HOME
ps=/
worker.list=balancer,status
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker2.port=8109
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.balancer.type=lb
worker.balancer.balance_workers=worker1,worker2
worker.balancer.method=B
worker.balancer.sticky_session=1
worker.status.type=status
И я поместил образец одного из файлов server.xml моего кота здесь: http://pastebin.com/0j0ta2WA
Я также добавил <distributable/>
тег к своему приложению web.xml
. Есть ли что-то, что я пропустил здесь, что сделало репликацию сеанса не работающей?
- Tomcat 5,5
- Apache 2.2
- mod_jk
- Пружина 2.5.6
- JDK 1.6.0_01