ahanflw

          EJB3.0+JBOSS4.0.5GA集群

          服務器端代碼:

          HelloWorld.java:

          1import javax.ejb.Remote;
          2
          3@Remote
          4public interface HelloWorld {
          5 public String sayHello(String s);
          6}

          7


          HelloWorldBean.java

           1import javax.ejb.Stateless;
           2
           3import org.jboss.annotation.ejb.Clustered;
           4
           5import cn.HelloWorld;
           6
           7@Stateless
           8@Clustered
           9public class HelloWorldBean implements HelloWorld {
          10
          11    public String sayHello(String s) {
          12        System.out.println(s);
          13        return s;
          14    }

          15    
          16}

           

          上面第8行的@Clustered是必須的,因為我們需要使用Stateless Bean的集群功能。

          分別在IP地址為:192.168.1.88和192.168.1.99機器上面安裝JBOSS4.0.5GA,JBOSS4.0.5可以去下載文件名為jboss-installer-1.2.0.GA.jar的安裝,安裝的時候選擇ejb3-clustered,再下面有一步時選擇Advance,再在Name輸入框輸入all,其它默認就可以了。

          兩臺機器上面都安裝好之后,分別在兩臺機器上面啟動jboss,啟動的時候需要加參數:如IP為192.168.1.88的機器啟動JBOSS,則為:run -c all -b 192.168.1.88

          當兩臺機器的JBOSS都正常啟動后,將上面的Stateless Bean打包成jar包,發(fā)布到其中一臺%JBOSS_HOME%\server\all\farm目錄下面,這樣集群中的其它結點將自動發(fā)布這個jar包。

          當發(fā)布完成之后,我們編寫客戶端:

          Client.java

           1import java.util.Properties;
           2
           3import javax.naming.InitialContext;
           4import javax.naming.NamingException;
           5
           6public class Client {
           7
           8    public static void main(String[] args) {
           9        Properties prop = new Properties();
          10        prop.setProperty("java.naming.factory.initial",
          11                "org.jnp.interfaces.NamingContextFactory");
          12        prop.setProperty("java.naming.factory.url.pkgs",
          13                "org.jboss.naming:org.jnp.interfaces");
          14        prop.setProperty("java.naming.provider.url",
          15                "192.168.1.88:1099,192.168.1.99:1099");
          16
          17        try {
          18            InitialContext ict = new InitialContext(prop);
          19            HelloWorld helloWorld = (HelloWorld) ict
          20                    .lookup("HelloWorldBean/remote");
          21            for (int i = 0; i < 10; i++{
          22                helloWorld.sayHello("HelloWorld");
          23            }

          24        }
           catch (NamingException e) {
          25            e.printStackTrace();
          26        }

          27    }

          28}

          29

           

          上面這個客戶端配置了JBOSS服務器IP地址及端口,調用遠程接口的HelloWorldBean,并連續(xù)調用10次sayHello方法。在JBOSS控制臺上面可以看到打印出HelloWorld。


          程序運行結果發(fā)現:在192.168.1.88 的JBOSS控制臺上面打印出4個HelloWorld,另一個JBOSS控制臺上面則打印出6個HelloWorld。加起來正好10個HelloWorld,可以發(fā)現兩臺JBOSS已經實現了負載均衡。

          集群中的任何一個結點掛掉之后,程序都可以正常運行,





           



          posted on 2008-05-22 20:57 范聯偉 閱讀(3414) 評論(6)  編輯  收藏 所屬分類: EJB3

          Feedback

          # re: EJB3.0+JBOSS4.0.5GA集群[未登錄] 2008-06-06 15:41 默默

          兄弟寫得很好,很通俗易懂。

          但是在下有個問題,就是如果我的服務器有100個以上呢,我難道要在客戶端寫上100個以上的IP嗎?

          請問還有什么最佳的方式嗎?  回復  更多評論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-06-06 18:49 學習奮鬥

          如果你真的做到有100臺服務器的集群,你還怕這客戶端配置嗎,到目前為止我還沒有發(fā)現可以有簡單配置的方法,如果樓主找到了,望告訴!  回復  更多評論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-06-23 01:57 8381

          Clustered標注是JBOSS EJB所特有的嗎?  回復  更多評論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-06-23 18:31 學習奮鬥

          @8381
          Clustered標注是EJB3所有的  回復  更多評論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-08-06 13:28 滑翔翼

          但是在下有個問題,就是如果我的服務器有100個以上呢,我難道要在客戶端寫上100個以上的IP嗎?
          ======
          那里可能在客戶端寫100 IP,只寫上集群中的任一個IP就可以了  回復  更多評論   

          # 兄弟,能否給小弟發(fā)份源碼呀? 2008-10-05 14:14 GIS愛好者

          兄弟,能否給小弟發(fā)份源碼,小弟好好的學習下,謝過先o(∩_∩)o...
          小弟的郵箱是: kai_triumph_dl@163.com  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 个旧市| 施秉县| 茶陵县| 荔浦县| 双桥区| 遵化市| 沁阳市| 华亭县| 巴楚县| 报价| 方山县| 左权县| 晋城| 永济市| 怀宁县| 漠河县| 张北县| 黔西| 古丈县| 绥芬河市| 拜泉县| 高台县| 漳平市| 新疆| 阜新| 仁化县| 沙湾县| 旌德县| 延安市| 西青区| 巫山县| 延长县| 通辽市| 泰顺县| 罗田县| 滕州市| 青冈县| 基隆市| 贵德县| 若尔盖县| 江阴市|