2015-10-14 3 views
2

У меня есть 3 сервера:JBoss 7 Load Balancer сеанса репликации

  • 2 JBoss 7.1.1 сервераЗапрос
  • 1 Apache

Я использую mod_jk

И моя конфигурация ниже структуры:

enter image description here

В моем веб-приложении у меня есть счетчик сеансов.

Запрос клиента 1 на веб-сервер (я имею в виду сервер балансировки нагрузки), веб-сервер выбирает первую JBoss AS.

На этот раз счетчик ++ (пример: счетчик = 5).

После этого я отключил первый JBoss AS.

И затем клиент продолжит отправку запроса на веб-сервер, первый JBoss AS отключится, поэтому веб-сервер выберет второй JBoss AS.

На этот раз Счетчик снова начать (Счетчик = 0)

Зв Я хочу сохранить счетчик сеансов в каждом JBoss AS.

Я имею в виду, на этот раз счетчик должен быть 6 после того, как первый JBoss AS спустится.

Как я могу это сделать?

См. Ниже конфигурацию.

#/etc/apache2/workers.properties 
##### Balancer ###### 
#worker.jboss.type=lb 
#worker.jboss.balance_workers=jboss1,jboss2 
#worker.jkstatus.type=status 
worker.list=jboss,jk-status 

##### JBOSS Machine 1 ##### 
worker.jboss1.type=ajp13 
worker.jboss1.host=192.168.20.131 
worker.jboss1.port=8009 
worker.jboss1.lbfactor=1 


##### JBOSS Machine 2 ##### 
worker.jboss2.type=ajp13 
worker.jboss2.host=192.168.20.130 
worker.jboss2.port=8009 
worker.jboss2.lbfactor=1 


##### LOAD Balancing ###### 
worker.jboss.type=lb 
worker.jboss.balance_workers=jboss1,jboss2 
worker.jboss.sticky_session=true ## I used to sticky session 
worker.jk-status.type=status 

My JBoss Web Application:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <context-root>/</context-root> 
    <replication-config> 
     <replication-trigger>SET_AND_GET</replication-trigger> 
     <replication-granularity>SESSION</replication-granularity> 
    </replication-config> 
</jboss-web> 

My Web Configuration

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 
    <display-name>HelloWorld</display-name> 
    <distributable/> 
</web-app> 

Мой Standalone.xml Разъем

<system-properties> 
    <property name="jvmRoute" value="jboss1"/> 
    <property name="useJK" value="true"/> 
</system-properties> 

AJP

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="jboss1" native="false"> 
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> 
    <connector name="ajp" protocol="AJP/1.3" scheme="ajp" socket-binding="ajp" /> 
    <virtual-server name="default-host" enable-welcome-root="false"> 
     <alias name="localhost"/> 
     <alias name="example.com"/> 
    </virtual-server> 
</subsystem> 

ответ

2

Чтобы включить репликацию сеанса необходимо настроить JBoss в кластере: https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto

и, скорее всего переключиться на mod_cluster вместо mod_jk, чтобы использовать все возможности кластера: https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto#AS7ClusterHowto-ClusterConfiguration

Если вы решили попробовать, я рекомендую вам прочитать серию статей на http://blog.akquinet.de/. Ссылка на первую: http://blog.akquinet.de/2012/06/21/clustering-in-jboss-as7eap-6/

 Смежные вопросы

  • Нет связанных вопросов^_^