Распределенная очередь Weblogic - балансировка нагрузки не работает - PullRequest
2 голосов
/ 14 февраля 2012

Я настроил кластерный сервер weblogic 9.2M3, имеющий два узла на разных виртуальных машинах.На кластере я настроил Унифицированные распределенные очереди, совместно используемые в кластере.К сожалению, распределение нагрузки в распределенных очередях не работает, и все сообщения обрабатываются клиентами на том же узле, что и производитель.

Я уже проверил следующее:

  1. Отключено Сходство с сервером на фабрике
  2. Проверено, что многоадресная рассылка работает между узлами в кластере
  3. Проверены различные способы установки целей для фабрики и очереди с помощью:
    • Установка фабрикии Очередь для развертывания в Кластере и
    • Установка Фабрики для Кластера и Очереди на два JMSServer
    • Установка Фабрики и Очереди для нацеливания на JMSServers

Любые предложения, почему балансировка нагрузки может не работать с приведенной ниже конфигурацией?

Это конфигурация, которую я использую часть config.xml:

 <cluster>
    <name>TestCluster</name>
    <multicast-address>239.192.0.1</multicast-address>
    <multicast-port>17001</multicast-port>
    <number-of-servers-in-cluster-address>2</number-of-servers-in-cluster-address>
  </cluster>
  <jms-server>
    <name>JMSServer1</name>
    <target>server1</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
  </jms-server>
  <jms-server>
    <nameJ>JMSServer2</name>
    <target>server2</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
  </jms-server>
  <jdbc-store>
    <name>PersistentStore1</name>
    <prefix-name>sas1_</prefix-name>
    <data-source>QueueDataSource</data-source>
    <target>sas1</target>
  </jdbc-store>
  <jdbc-store>
    <name>PersistentStore2</name>
    <prefix-name>sas2_</prefix-name>
    <data-source>QueueDataSource</data-source>
    <target>sas2</target>
  </jdbc-store>
  <jms-system-resource>
    <name>ClusterJMSModule</name>
    <target>TestCluster</target>
    <sub-deployment>
      <name>ClusterSubDeployment</name>
      <target>TestCluster</target>
    </sub-deployment>
    <descriptor-file-name>jms/clusterjmsmodule-jms.xml</descriptor-file-name>
  </jms-system-resource>

Определениянаправлений:

<connection-factory name="jms/levelsInputConnectionFactory">
    <sub-deployment-name>ClusterSubDeployment</sub-deployment-name>
    <jndi-name>jms/levelsInputConnectionFactory</jndi-name>
    <load-balancing-params>
      <server-affinity-enabled>false</server-affinity-enabled>
    </load-balancing-params>
  </connection-factory>
  <uniform-distributed-queue name="jms/levelsInputQueue">
    <sub-deployment-name>ClusterSubDeployment</sub-deployment-name>
    <jndi-name>jms/levelsInputQueue</jndi-name>
    <forward-delay>10</forward-delay>
  </uniform-distributed-queue>

1 Ответ

0 голосов
/ 25 апреля 2014

Я выполнил действия, описанные в статье http://middlewaremagic.com/weblogic/?p=3747, и это помогло мне настроить распределенную очередь для указанного ниже сценария ...

(1-админ-сервер (AS), 2-управляемый сервер (MS), 2 блока)

Box-A

MS-1 под кластером JMSServer-1 и Store-1 => MS-1 (Migratable)

Box-B

MS-2 под кластером JMSServer-2 и Store-2 => MS-2 (Migratable)

Admin Server

  • JMS_Module => Кластер
  • SubDeployment_UDQ => JMS-сервер-1, JMS-сервер-2
  • ConnectionFactory (с «отключенной привязкой») => Кластер
  • UDQ (распределенная очередь) => SubDeployment_UDQ
...