Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat clustering + nginx / 25 сообщений из 31, страница 1 из 2
11.01.2008, 14:46
    #35056081
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Привет всем. Собственно интересует такой вопрос - как организовать кластеризацию томкатов в связке с nginx , который будет заниматься балансировкой нагрузки?

тоесть конфигурация такая:

Host1:
Tomcat (A)

Host2:
Tomcat (B)

Host3:
nginx


Кто уже занимался этой проблемой? Поделитесь пожалуйста опытом.
...
Рейтинг: 0 / 0
11.01.2008, 15:26
    #35056247
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Видимо это ответ :)
...
Рейтинг: 0 / 0
11.01.2008, 15:47
    #35056349
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
KachalovВидимо это ответ :)

Интересная информация. Спасибо!
Что оттуда удалось почерпнуть:

1) говорится что mod_jk 2 не является удачным и поэтому объявлен deprecated, модуль mod_jk 1.2 является по прежнему удачным
2) для работы с кластером и балансировкой рекомендуется собрать томкат с apr и проксировать по http
2) связка nginx+apr+tomcat является более удачной чем apache+mod_jk+tomcat

собственно говоря теперь вопросы по этим пунктам (выжимке из вышеприведенной ссылке):

1) что такое apr
2) почему всё таки автор говорит что связка nginx+apr+tomcat является более удачной чем apache+mod_jk+tomcat?
...
Рейтинг: 0 / 0
11.01.2008, 16:15
    #35056474
mikkri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
tomcat user1) говорится что mod_jk 2 не является удачным и поэтому объявлен deprecated, модуль mod_jk 1.2 является по прежнему удачным

mod_jk 2 начали писать, да забросили. Лично я сталкивался с багами в нем, которые никто фиксить не собирается. Потратил в свое время много часов, прежде чем понял, что ошибка не в моем приложении.
...
Рейтинг: 0 / 0
11.01.2008, 16:17
    #35056483
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
tomcat user1) говорится что mod_jk 2 не является удачным и поэтому объявлен deprecated, модуль mod_jk 1.2 является по прежнему удачным
- дальше по топику автор отказался от своих слов :)

tomcat user2) для работы с кластером и балансировкой рекомендуется собрать томкат с apr и проксировать по http
- кластер можно собрать используя собственные возможности Tomcat

tomcat user
2) связка nginx+apr+tomcat является более удачной чем apache+mod_jk+tomcat
- бездоказательное утверждение :)

tomcat user1) что такое apr
APR

tomcat user
2) почему всё таки автор говорит что связка nginx+apr+tomcat является более удачной чем apache+mod_jk+tomcat?
- видимо тестил, но точно не известно :)
...
Рейтинг: 0 / 0
11.01.2008, 16:40
    #35056552
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Вобщем получилось настроить балансировку nginx на два томката на локальном хосте... :)
Теперь встал вопрос о репликации сессий между томкатами. Поэтому дополнительные вопросы:
1) какие варианты существуют для хранения разделяемых сессий (БД, общая память, файл, т .п.)
2) какой вариант репликации предпочтительнее
...
Рейтинг: 0 / 0
11.01.2008, 16:52
    #35056611
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
tomcat userВобщем получилось настроить балансировку nginx на два томката на локальном хосте... :)
Теперь встал вопрос о репликации сессий между томкатами. Поэтому дополнительные вопросы:
1) какие варианты существуют для хранения разделяемых сессий (БД, общая память, файл, т .п.)
2) какой вариант репликации предпочтительнее
- зря Вы этим занялись не почитав предварительно это
...
Рейтинг: 0 / 0
11.01.2008, 16:54
    #35056615
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Kachalov tomcat userВобщем получилось настроить балансировку nginx на два томката на локальном хосте... :)
Теперь встал вопрос о репликации сессий между томкатами. Поэтому дополнительные вопросы:
1) какие варианты существуют для хранения разделяемых сессий (БД, общая память, файл, т .п.)
2) какой вариант репликации предпочтительнее
- зря Вы этим занялись не почитав предварительно это

Вы правы. Спасибо, уже читаю. :)
...
Рейтинг: 0 / 0
11.01.2008, 18:03
    #35056867
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Kachalov
- кластер можно собрать используя собственные возможности Tomcat


Выполнил примеры из руководства, пока что не получилось. Да оно и понятно - информации много и она новая. Вот и запутался. Поэтому вопросы:

1) При настройке кластера, в файле server.xml есть тег по-умолчанию:
Код: plaintext
1.
2.
3.
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost">
....

А также есть закомментированный тег:
Код: plaintext
1.
2.
3.
<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->

В примерах сказано - что нужно использовать в теге engine атрибут jvmRoute="xxxxx"
Вопросы:
1) Этот атрибут нужно вписывать в тег, который используется по-умолчанию - <Engine name="Catalina"
либо раскомментировать тег <Engine name="Standalone" ?

2) Что значит значение аттрибута jvmRoute="jvm1" ? На что это значение влияет?
...
Рейтинг: 0 / 0
11.01.2008, 18:11
    #35056902
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Вот еще дополнительный вопрос - если я использую для балансировки nginx, то соответственно может и не надо тогда использовать атрибут jvmRoute? если судить по комментарию:
You should set jvmRoute to support load-balancing via AJP ie
...
Рейтинг: 0 / 0
11.01.2008, 18:25
    #35056950
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
tomcat user
В примерах сказано - что нужно использовать в теге engine атрибут jvmRoute="xxxxx"
Вопросы:
1) Этот атрибут нужно вписывать в тег, который используется по-умолчанию - <Engine name="Catalina"
либо раскомментировать тег <Engine name="Standalone" ?
- значение name - произвольное уникальное имя, т. е. можно Catalina или Standalone

tomcat user
2) Что значит значение аттрибута jvmRoute="jvm1" ? На что это значение влияет?
- произвольное уникальное имя необходимое для кластеризации сессий (разное для разных экземпляров Tomcat)

тынц
...
Рейтинг: 0 / 0
11.01.2008, 18:27
    #35056954
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
tomcat userВот еще дополнительный вопрос - если я использую для балансировки nginx, то
- то опять встает вопрос о кластеризации сессии :)
...
Рейтинг: 0 / 0
11.01.2008, 23:48
    #35057287
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
OFF: хех... наткнулся в гугле случайно, ища инфу по сабжу:

http://bash.org.ru/quote/275840

:)

PS: а кому нибудь вообще удавалось настроить эту репликацию? Почему то я делаю всё как сказано в руководстве - но происходит следующее:
заходим на нод1. он создает сессию... при следующем запросе если попадаем на нод2, то сессия затирается новой.

Вот еще ресурс, которым я пользовался: http://voituk.kiev.ua/2007/06/25/tomcat-cluster/
но примеры также не работают.. :(
...
Рейтинг: 0 / 0
12.01.2008, 18:20
    #35057780
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Вобщем подведу итог моих мучений по организации кластера с разделяемой сессией. Что имеем:

1. Узлы кластера
путьописание имя узла/opt/java/cluster/t1Tomcat 5.5node01/opt/java/cluster/t2Tomcat 5.5node02

2. Общая конфигурация узла кластера $TOMCAT_HOME/config/server.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<Server port="XXXX" shutdown="SHUTDOWN">
	
  <Service name="Catalina">
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="XXXX" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="XXXX" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="XXXX">

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
	 
	 <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership 
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="228.0.0.4"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver 
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="127.0.0.1"
                tcpListenPort="XXXX"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"
                waitForAck="true"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                   
            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
                      
            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
        </Cluster>

      </Host>
    </Engine>
  </Service>
</Server>
В конфигурации значение атрибутов, которые различаются для каждого узла кластера, помечены значением XXXX . Значения для этих атрибутов даны ниже в таблице:

3. Аттрибуты тегов в файле $TOMCAT_HOME/config/server.xml для каждого из узлов
аттрибут Node01Node02server port80059005HTTP connector port80809080AJP connector port80099009mcastAddr228.0.0.4228.0.0.4mcastPort4556445564tcpListenAddr127.0.0.1127.0.0.1tcpListenPort40004001jvmRoutenode01node02

4. Проверка
Теперь самое главное - проверяю работу кластера:
4.1. Запускаю оба узла (catalina.sh run)
4.2. Из браузера набираю адрес http://localhost:8080/test/test.jsp
при этом создается HTTP-сессия

4.3. Из браузера набираю адрес http://localhost:9080/test/test.jsp
при этом сессия создается для этого узла, а по идее она должна браться из узла 1?

Вопрос - почему не работает репликация сессий? Может что нибудь я пропустил? Все вроде делал как сказано в руководстве:
Clustering and Load Balancing in Tomcat 5, Part 2
...
Рейтинг: 0 / 0
12.01.2008, 19:00
    #35057834
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Не увидел в Вашей конфигурации настроек:
Код: plaintext
1.
2.
<ClusterListener  className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" />
<Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve"  enabled="true"  />
...
Рейтинг: 0 / 0
12.01.2008, 19:20
    #35057848
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
KachalovНе увидел в Вашей конфигурации настроек:
Код: plaintext
1.
2.
<ClusterListener  className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" />
<Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve"  enabled="true"  />


Добавил. Все равно не помогло. В консоли при запуске томката написано:

Using CATALINA_BASE: /opt/java/cluster/t2
Using CATALINA_HOME: /opt/java/cluster/t2
Using CATALINA_TMPDIR: /opt/java/cluster/t2/temp
Using JRE_HOME: /opt/java/jdk1.6.0_02
Jan 12, 2008 7:00:02 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/jdk1.6.0_02/jre/lib/i386/client:/opt/java/jdk1.6.0_02/jre/lib/i386:/opt/java/jdk1.6.0_02/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
Jan 12, 2008 7:00:02 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9080
Jan 12, 2008 7:00:02 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 968 ms
Jan 12, 2008 7:00:03 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jan 12, 2008 7:00:03 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.17
Jan 12, 2008 7:00:03 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Jan 12, 2008 7:00:03 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster start
INFO: Cluster is about to start
Jan 12, 2008 7:00:03 PM org.apache.catalina.cluster.tcp.ReplicationTransmitter start
INFO: Start ClusterSender at cluster Catalina:type=Cluster,host=localhost with name Catalina:type=ClusterSender,host=localhost
Jan 12, 2008 7:00:03 PM org.apache.catalina.cluster.mcast.McastService start
INFO: Sleeping for 2000 milliseconds to establish cluster membership
Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.mcast.McastService registerMBean
INFO: membership mbean registered (Catalina:type=ClusterMembership,host=localhost)
Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.deploy.FarmWarDeployer start
INFO: Cluster FarmWarDeployer started.
Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.session.DeltaManager start
INFO: Register manager /test to cluster element Host with name localhost
Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.session.DeltaManager start
INFO: Starting clustering manager at /test
Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.session.DeltaManager getAllClusterSessions
INFO: Manager [/test]: skipping state transfer. No members active in cluster group.

Jan 12, 2008 7:00:05 PM org.apache.catalina.cluster.session.JvmRouteBinderValve start
INFO: JvmRouteBinderValve started
Jan 12, 2008 7:00:06 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-9080
Jan 12, 2008 7:00:06 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:9009
Jan 12, 2008 7:00:06 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/24 config=null
Jan 12, 2008 7:00:06 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Jan 12, 2008 7:00:06 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3642 ms


кроме того в браузере создаются куки с суффиксом .node01 или .node02
но они перезатирают друг друга как бы...
кстати еще вопрос - я запускаю кластер на локальном хосте (тоесть вертикальный), нужно ли в конфигурации для мультикаст-рассылки делать одинаковые порты mcascPort=45564 ? Просто в руководстве как бы используются одинаковые, но не будет ли конфликта в данном случае?
...
Рейтинг: 0 / 0
12.01.2008, 19:24
    #35057850
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
unicornmirage
4.2. Из браузера набираю адрес http://localhost:8080/test/test.jsp
при этом создается HTTP-сессия

4.3. Из браузера набираю адрес http://localhost:9080/test/test.jsp
при этом сессия создается для этого узла, а по идее она должна браться из узла 1?

- в данном случае идентификатор сессии передается браузером в виде Cookie и на случай 4.3 cookie созданные для 4.2 браузер отправлять не будет, так как с точки зрения браузера это другой сервер. Попробуйте использовать URL содержащий идентификатор сессии созданной в 4.2, для этого укажите URL вида: http://localhost:9080/test/test.jsp;jsessionid=идентификатор_созданный_для_4.2
...
Рейтинг: 0 / 0
12.01.2008, 19:39
    #35057867
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
unicornmirageя запускаю кластер на локальном хосте (тоесть вертикальный), нужно ли в конфигурации для мультикаст-рассылки делать одинаковые порты mcascPort=45564? Просто в руководстве как бы используются одинаковые, но не будет ли конфликта в данном случае?
из server.xml:
mcastAddr = the multicast address, has to be the same for all the nodes
mcastPort = the multicast port, has to be the same for all the nodes
...
Рейтинг: 0 / 0
12.01.2008, 20:19
    #35057895
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Kachalov unicornmirage
4.2. Из браузера набираю адрес http://localhost:8080/test/test.jsp
при этом создается HTTP-сессия

4.3. Из браузера набираю адрес http://localhost:9080/test/test.jsp
при этом сессия создается для этого узла, а по идее она должна браться из узла 1?

- в данном случае идентификатор сессии передается браузером в виде Cookie и на случай 4.3 cookie созданные для 4.2 браузер отправлять не будет, так как с точки зрения браузера это другой сервер. Попробуйте использовать URL содержащий идентификатор сессии созданной в 4.2, для этого укажите URL вида: http://localhost:9080/test/test.jsp;jsessionid=идентификатор_созданный_для_4.2

Ок, раз браузер считает что это другой сервер, значит никак нельзя проверить репликацию сессий на кластере без балансировщика?
Теперь я включаю балансировщик нагрузки nginx , который перенаправляет на один из адресов:
127.0.0.1:8080
127.0.0.1:9080


тоесть в браузере я ввожу такой адрес: http://localhost/test/test.jsp
В этом случае также не работает репликация сессий.. На томкате /opt/java/cluster/t1/webapps/test есть test.jsp , которая записывает в сессию атрибут "alpha" :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<%@ page contentType="text/html;charset=windows-1251" %>


    <%="Node: " + getServletContext().getRealPath(".") + "<br />" %>
    <%
         if  (session.getAttribute("sessionObj") ==  null ) {
            out.println("No session. Setting sessionObj to \"alpha\"");
            session.setAttribute("sessionObj", "alpha");

        }  else  {
            out.print("sessionObj " + session.getAttribute("sessionObj"));
        }
    %>

На томкате /opt/java/cluster/t2/webapps/test есть аналогичная test.jsp , которая записывает в сессию атрибут "beta"

Далее открываю браузер и постоянно отправляю запросы на адрес http://localhost/test/test.jsp .
В браузере поочередно выводится следующее:


Node: /opt/java/cluster/t1/webapps/test/.
No session. Setting sessionObj to "alpha"
...
Node: /opt/java/cluster/t2/webapps/test/.
No session. Setting sessionObj to "beta"
...
Node: /opt/java/cluster/t1/webapps/test/.
No session. Setting sessionObj to "alpha"
Node: /opt/java/cluster/t2/webapps/test/.
No session. Setting sessionObj to "beta"
...

а по идее должно быть так: первый задействованный нод создает сессию, например node01 и записывает атрибут aplha. Тогда после попадания на узел node02 должно было бы вывестись:


Node: /opt/java/cluster/t1/webapps/test/.
sessionObj alpha


Но не выводится
...
Рейтинг: 0 / 0
12.01.2008, 21:42
    #35057944
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
unicornmirageОк, раз браузер считает что это другой сервер, значит никак нельзя проверить репликацию сессий на кластере без балансировщика?
- почему нельзя? я приводил пример как это сделать - сессии могут работать и без кук, при использовании в URL jsessionid. Вам достаточно получить с первого узла id сессии (просто распечатайте его на странице) и добавить его в URL при обращении ко второму узлу (можно на странице сделать абсолютную ссылку на второй узел с использованием метода encodeURL (только куки в браузере отключите) или воспользоваться методом getId сессии)


unicornmirageТеперь я включаю балансировщик нагрузки nginx, который перенаправляет на один из адресов
- теоретически репликация сессии должна происходить и без балансировщика ... но уж если использовать балансировщик я бы сначала поэкспериментировал с Apache+mod_jk+Tomcat, а потом уже с nginx, все таки первая связка лучше описана
...
Рейтинг: 0 / 0
13.01.2008, 00:56
    #35058076
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
возникло еще одно предположение - а вдруг кластер вообще не собрался в моем случае - томкаты работают каждый сам по себе и не знают друг о друге, т.к. широковещательная рассылка между ними не работает. Я же запускаю их на одном локальном компе, и, возможно, что нужно сделать виртуальные хосты разные для каждого нода - свой?
Сейчас атрибут тега <host> везде стоит localhost .
...
Рейтинг: 0 / 0
13.01.2008, 02:27
    #35058102
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
Вобщем вроде бы всё получилось! Работает балансировка nginx + tomcat nodes на локальном хосте с репликацией сессий...
Ув. Kachalov, большое спасибо за консультации, они весьма помогли в решении проблемы!
...
Рейтинг: 0 / 0
14.01.2008, 09:53
    #35058937
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
непонятная репликация сессий теперь происходит.
Предположим, я запускаю узлы кластера в такой последовательности:

node01, node02, node03...

Тоесть первым был запущен node01. Теперь он регистрирует узлы кластера.. О чем можно убедиться, глядя на логи:

Jan 14, 2008 9:45:47 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 85237 ms
Jan 14, 2008 9:45:54 AM org.apache.catalina.cluster.tcp.SimpleTcpCluster memberDisappeared
INFO: Received member disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://127.0.0.1:4002,catalina,127.0.0.1,4002, alive=9692]
Jan 14, 2008 9:45:54 AM org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
INFO: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://127.0.0.1:4002,catalina,127.0.0.1,4002, alive=6]
Jan 14, 2008 9:46:18 AM org.apache.catalina.cluster.tcp.SimpleTcpCluster memberDisappeared
INFO: Received member disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://127.0.0.1:4002,catalina,127.0.0.1,4002, alive=9653]
Jan 14, 2008 9:46:18 AM org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
INFO: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://127.0.0.1:4002,catalina,127.0.0.1,4002, alive=79]


Так вот, я написал простое web-приложение, просто аутентифицирующее пользователя и сообщающее об этом. И проверяю его на кластере.
Если мы заходим вначале на node01, тоесть набираем в строке браузера http://localhost:8080/test/test.jsp , и аутентифицируемся на этом узле, а затем просто переходим на другой узел по адресу http://localhost:8081/test/test.jsp то там я тоже аутентифицирован! тоесть репликация сработала!

Но, если же сперва проводить аутентификацию на node01 то с него не происходит репликация на node01. Почему так?
...
Рейтинг: 0 / 0
14.01.2008, 09:59
    #35058952
tomcat user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
а вот что пишет в логах узел node01:


Jan 14, 2008 9:57:55 AM org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run
INFO: Cluster membership, running recovery thread, multicasting is not functional.


Тоесть его ктото видит (узел 01) а он не видит.
...
Рейтинг: 0 / 0
14.01.2008, 15:14
    #35060131
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat clustering + nginx
вобщем все вопросы снимаются... тему можно закрывать. если кому интересно почему не работала правильно репликация - потому что надо было прописать в таблице роутинга правило для мультикаста на локальном хосте для адреса 228.0.0.4 :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat clustering + nginx / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]