terracotta集群初尝试-helloword

Terracotta兵马俑集群-HelloWorld

一.  目的:

让两个独立的进程实现共同访问一个资源。

二.  先写一个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(); 
           } 
       }    
} 
}


 

用两个进程运行后,很明显各自处理各自的事,没有一点联系。

三.  安装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服务


保持界面不关闭,然后再调出两个cmd界面,运行Main.jar,

 

注意:terracotta-3.7.7-2013-08-19_16-03-48-installer.jar  需要的jdk版本是1.6,如果发现报错运行不成功,请检查jdk版本。



如上图所示,两个独立的进程可以共同访问count的资源了。


terracotta-3.7.7-2013-08-19_16-03-48-installer.jar  免费下载地址:   http://download.csdn.net/detail/qq_27063119/9712109


你可能感兴趣的:(集群)