1

Tomcat サーバーを備えた一部の Linux ボックスの AWS EC2 でアプリケーションを使用しようとしています。以前は、LAN 上の Infinispan でアプリケーションを使用し、JGroups メンバーの検出に UDP マルチキャストを使用していました。EC2 は UDP マルチキャストをサポートしていません。これは、クラスターで実行されているノードを検出するために Infinispan によって使用されるデフォルトのノード検出アプローチです。S3_PING プロトコルの使用を調べましたが、なぜ機能しないのかわかりません。

ここで何が問題なのか、誰にも考えがありますか?

ここに私の設定ファイルがあります: 1. applicationContext-cache.xml

<!-- Infinispan cache -->
<cache:annotation-driven/>

<import resource="classpath:/applicationContext-dao.xml"/>


<bean id="cacheManager" class="org.infinispan.spring.provider.SpringEmbeddedCacheManagerFactoryBean">
    <property name="configurationFileLocation" value="classpath:/infinispan-replication.xml"/>
</bean>

<context:component-scan base-package="com.alex.cache"/>

2.infinispan-replication.xml

<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
        xmlns="urn:infinispan:config:5.1">

<global>
    <transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
        <properties>
            <property name="configurationFile" value="/home/akasiyanik/dev/projects/myapp/myapp-configs/jgroups.xml"/>
        </properties>
    </transport>
</global>

<default>
    <!-- Configure a synchronous replication cache -->
    <clustering mode="replication">
        <sync/>
        <hash numOwners="2"/>
    </clustering>
</default>
</infinispan>

3.jgroups.xml

<config>
    <TCP bind_port="${jgroups.tcp.port:7800}"
      loopback="true"
      port_range="30"
      recv_buf_size="20000000"
      send_buf_size="640000"
      discard_incompatible_packets="true"
      max_bundle_size="64000"
      max_bundle_timeout="30"        
      enable_bundling="true"
      use_send_queues="true"
      sock_conn_timeout="300"
      enable_diagnostics="false"
      thread_pool.enabled="true"
      thread_pool.min_threads="2"
      thread_pool.max_threads="30"
      thread_pool.keep_alive_time="60000"
      thread_pool.queue_enabled="false"
      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"
     />
    <S3_PING location="r********s" access_key="AK***************SIA"
      secret_access_key="y*************************************BJ" timeout="2000" num_initial_members="2"/>
    <MERGE2 max_interval="30000"
        min_interval="10000"/>
    <FD_SOCK/>
    <FD timeout="3000" max_tries="3"/>
    <VERIFY_SUSPECT timeout="1500"/>
    <BARRIER />
    <pbcast.NAKACK use_mcast_xmit="false"
               exponential_backoff="500"
               discard_delivered_msgs="true"/>
    <UNICAST />
    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
               max_bytes="4M"/>
    <pbcast.GMS print_local_addr="true" join_timeout="3000" 
            view_bundling="true"/>
    <UFC max_credits="2M"
     min_threshold="0.4"/>
    <MFC max_credits="2M"
     min_threshold="0.4"/>
   <FRAG2 frag_size="60K" />
   <pbcast.STATE_TRANSFER/>
</config>
4

1 に答える 1

2

これを使用してください: https://github.com/meltmedia/jgroups-aws

AWS API (マルチキャスト置換) を使用した AWS 用の JGroups ディスカバリー プロトコルの実装です。

于 2013-12-19T17:24:52.817 に答える