terracottaクラスタ初試行-helloword

3118 ワード

Terracotta兵馬俑集群-HelloWorld
一.目的:
2つの独立したプロセスに1つのリソースへの共同アクセスを実現させます.
二.まずdemoを書きます.
ソース:
package simpleparallel;
public class Main implementsRunnable{
    private Objectlock = newObject(); 
    private int count = 0; 
    private static Main inst = new Main(); 
    /**
     * @param args
    */ 
    public static void main(String[] args) { 
       new Thread(inst).start(); 
       new Thread(inst).start(); 
   } 
 
    public void run() { 
       //keep increasing count by one every fewseconds 
       while(true){ 
           synchronized(lock){ 
                count++; 
                System.out.println(Thread.currentThread().getName() +" increased count to:"+count); 
           } 
           try{ 
                Thread.sleep((int)(5000*Math.random())); 
           } 
           catch(Exception e){ 
                e.printStackTrace(); 
           } 
       }    
} 
}

 
2つのプロセスで実行すると,それぞれのことを処理し,少しも連絡がないことが明らかになった.
三.terracottaの取り付け
terracotta-3.7.7-2013-08-19_を実行16-03-48-installer.JArはインストールを行い、私はdディスクのterracottaディレクトリにインストールし、その後Mainクラスをmainにパッケージした.JAr、tc-configをもう一つ作成します.xmlファイル、ファイルの内容は以下の通りです.
<?xmlversion="1.0" encoding="UTF-8"?>
<tc:tc-configxmlns:tc="http://www.terracotta.org/config"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-6.xsd">
  <servers>
    <server host="%i"name="localhost">
      <dso-port>9510</dso-port>
      <jmx-port>9520</jmx-port>
     <data>/terracotta/server-data</data>
     <logs>/terracotta/server-logs</logs>
      <statistics>/terracotta/cluster-statistics</statistics>
    </server>
  </servers>
  <clients>
   <logs>/terracotta/client-logs</logs>
  </clients>
  <application>
    <dso>
      <instrumented-classes>
        <include>
         <class-expression>simpleparallel.Main</class-expression>
        </include>
      </instrumented-classes>
      <roots>
        <root>
         <field-name>simpleparallel.Main.inst</field-name>
        </root>
      </roots>
      <locks>
        <autolock>
          <method-expression>voidsimpleparallel.Main.run()</method-expression>
         <lock-level>write</lock-level>
        </autolock>
      </locks>
    </dso>
  </application>
</tc:tc-config>

 
最後にtc-config.xmlおよびmain.JArはterracottaのインストールディレクトリにコピーし、下図のようにします.
terracottaサービスの開始
インタフェースをオフにしないで、2つのcmdインタフェースを呼び出し、Mainを実行します.jar,
 
注意:terracotta-3.7.7-2013-08-19_16-03-48-installer.JArに必要なjdkバージョンは1.6です.エラーが正常に実行されなかった場合は、jdkバージョンを確認します.
上図に示すように、2つの独立したプロセスはcountのリソースに共同でアクセスできます.
terracotta-3.7.7-2013-08-19_16-03-48-installer.JAr無料ダウンロードアドレス:http://download.csdn.net/detail/qq_27063119/9712109