Infinispan: Как объединить встроенный кеш и автономный сервер в одном кластере?

В качестве подтверждения концепции я пытаюсь создать бесконечный кластер с существующим приложением, которое запускает встроенный кэш и один или несколько автономных бесконечных серверов.

Причина этого заключается в том, что я хочу показать, что существует способ автоматического создания кластера с нулевой конфигурацией путем простого запуска только что загруженных автономных бесконечно удаленных серверов. Таким образом, мое приложение запускает встроенный кеш, который будет автоматически "соединяться" с новыми узлами.

Я использую настройки по умолчанию для infinispan и jgroups (см. Ниже).

Эффект состоит в том, что два или более моих приложений со встроенным кешем "видят друг друга", а два или более автономных сервера с неограниченным сроком действия видят друг друга. Но ни один из моих узлов не "видит" автономные узлы, и они не видят мои узлы.

Я использую Infispan 6.0.2.

Автономный сервер выглядит так: http://downloads.jboss.org/infinispan/6.0.2.Final/infinispan-server-6.0.2.Final-bin.zip

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

Это код, который запускает встроенный кеш:

  DefaultCacheManager manager = new DefaultCacheManager(
    GlobalConfigurationBuilder.defaultClusteredBuilder().transport()
      .nodeName( node ).addProperty( "configurationFile", "jgroups.xml" )
      .build(), new ConfigurationBuilder().clustering()
      .cacheMode( CacheMode.DIST_SYNC ).build() );

  Cache<String, String> cache = manager.getCache( "default" );

Это jgroups-config, которую я использую:

<config xmlns="urn:org:jgroups"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:org:jgroups file:schema/JGroups-3.2.xsd">

    <UDP
            mcast_addr="${jgroups.udp.mcast_addr:228.6.7.8}"
            mcast_port="${jgroups.udp.mcast_port:46655}"
            tos="8"
            ucast_recv_buf_size="200k"
            ucast_send_buf_size="200k"
            mcast_recv_buf_size="200k"
            mcast_send_buf_size="200k"
            loopback="true"
            max_bundle_size="64000"
            max_bundle_timeout="30"
            ip_ttl="${jgroups.udp.ip_ttl:2}"
            enable_bundling="true"
            enable_diagnostics="false"
            bundler_type="old"

            thread_naming_pattern="pl"

            thread_pool.enabled="true"
            thread_pool.min_threads="2"
            thread_pool.max_threads="30"
            thread_pool.keep_alive_time="60000"
            thread_pool.queue_enabled="true"
            thread_pool.queue_max_size="100"
            thread_pool.rejection_policy="Discard"

            oob_thread_pool.enabled="true"
            oob_thread_pool.min_threads="2"
            oob_thread_pool.max_threads="30"
            oob_thread_pool.keep_alive_time="60000"
            oob_thread_pool.queue_enabled="false"
            oob_thread_pool.queue_max_size="100"
            oob_thread_pool.rejection_policy="Discard"
            />

    <PING timeout="3000" num_initial_members="3"/>
    <MERGE2 max_interval="30000" min_interval="10000"/>
    <FD_SOCK/>
    <FD_ALL timeout="15000"/>
    <VERIFY_SUSPECT timeout="5000"/>
    <!-- Commented when upgraded to 3.1.0.Alpha (remove eventually)
    <pbcast.NAKACK  exponential_backoff="0"
                    use_mcast_xmit="true"
                    retransmit_timeout="300,600,1200"
                    discard_delivered_msgs="true"/> -->
    <pbcast.NAKACK2
            xmit_interval="1000"
            xmit_table_num_rows="100"
            xmit_table_msgs_per_row="10000"
            xmit_table_max_compaction_time="10000"
            max_msg_batch_size="100"/>

    <!-- Commented when upgraded to 3.1.0.Alpha (remove eventually)
    <UNICAST timeout="300,600,1200"/>  -->
    <UNICAST2
            stable_interval="5000"
            xmit_interval="500"
            max_bytes="1m"
            xmit_table_num_rows="20"
            xmit_table_msgs_per_row="10000"
            xmit_table_max_compaction_time="10000"
            max_msg_batch_size="100"
            conn_expiry_timeout="0"/>
    <pbcast.STABLE stability_delay="500" desired_avg_gossip="5000" max_bytes="1m"/>
    <pbcast.GMS print_local_addr="false" join_timeout="3000" view_bundling="true"/>
    <UFC max_credits="200k" min_threshold="0.20"/>
    <MFC max_credits="200k" min_threshold="0.20"/>
    <FRAG2 frag_size="8000"  />
    <RSVP timeout="60000" resend_interval="500" ack_on_delivery="true" />
</config>

2 ответа

Решение

Возможно, ваша проблема в настройке многоадресного порта / адреса в JGroups. Также убедитесь, что вы используете те же настройки IPv4 / IPv6.

Проблема кажется со стеком IPv4/IPv6

Использовать аргумент JVM при создании статического сервера

-Djava.net.preferIPv4Stack=true

это заставит приложение использовать IPV4 в качестве стека по умолчанию.

Другие вопросы по тегам