ahanflw

          EJB3.0+JBOSS4.0.5GA集群

          服務(wù)器端代碼:

          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是必須的,因?yàn)槲覀冃枰褂肧tateless Bean的集群功能。

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

          兩臺(tái)機(jī)器上面都安裝好之后,分別在兩臺(tái)機(jī)器上面啟動(dòng)jboss,啟動(dòng)的時(shí)候需要加參數(shù):如IP為192.168.1.88的機(jī)器啟動(dòng)JBOSS,則為:run -c all -b 192.168.1.88

          當(dāng)兩臺(tái)機(jī)器的JBOSS都正常啟動(dòng)后,將上面的Stateless Bean打包成jar包,發(fā)布到其中一臺(tái)%JBOSS_HOME%\server\all\farm目錄下面,這樣集群中的其它結(jié)點(diǎn)將自動(dòng)發(fā)布這個(gè)jar包。

          當(dāng)發(fā)布完成之后,我們編寫(xiě)客戶(hù)端:

          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

           

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


          程序運(yùn)行結(jié)果發(fā)現(xiàn):在192.168.1.88 的JBOSS控制臺(tái)上面打印出4個(gè)HelloWorld,另一個(gè)JBOSS控制臺(tái)上面則打印出6個(gè)HelloWorld。加起來(lái)正好10個(gè)HelloWorld,可以發(fā)現(xiàn)兩臺(tái)JBOSS已經(jīng)實(shí)現(xiàn)了負(fù)載均衡。

          集群中的任何一個(gè)結(jié)點(diǎn)掛掉之后,程序都可以正常運(yùn)行,





           



          posted on 2008-05-22 20:57 范聯(lián)偉 閱讀(3414) 評(píng)論(6)  編輯  收藏 所屬分類(lèi): EJB3

          Feedback

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

          兄弟寫(xiě)得很好,很通俗易懂。

          但是在下有個(gè)問(wèn)題,就是如果我的服務(wù)器有100個(gè)以上呢,我難道要在客戶(hù)端寫(xiě)上100個(gè)以上的IP嗎?

          請(qǐng)問(wèn)還有什么最佳的方式嗎?  回復(fù)  更多評(píng)論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-06-06 18:49 學(xué)習(xí)奮鬥

          如果你真的做到有100臺(tái)服務(wù)器的集群,你還怕這客戶(hù)端配置嗎,到目前為止我還沒(méi)有發(fā)現(xiàn)可以有簡(jiǎn)單配置的方法,如果樓主找到了,望告訴!  回復(fù)  更多評(píng)論   

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

          Clustered標(biāo)注是JBOSS EJB所特有的嗎?  回復(fù)  更多評(píng)論   

          # re: EJB3.0+JBOSS4.0.5GA集群 2008-06-23 18:31 學(xué)習(xí)奮鬥

          @8381
          Clustered標(biāo)注是EJB3所有的  回復(fù)  更多評(píng)論   

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

          但是在下有個(gè)問(wèn)題,就是如果我的服務(wù)器有100個(gè)以上呢,我難道要在客戶(hù)端寫(xiě)上100個(gè)以上的IP嗎?
          ======
          那里可能在客戶(hù)端寫(xiě)100 IP,只寫(xiě)上集群中的任一個(gè)IP就可以了  回復(fù)  更多評(píng)論   

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

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大石桥市| 临澧县| 喀喇| 丹巴县| 临城县| 高邑县| 赣榆县| 浮山县| 北流市| 石渠县| 绵竹市| 微山县| 和静县| 镇江市| 安泽县| 中牟县| 勃利县| 阿克苏市| 尤溪县| 驻马店市| 黔东| 贵溪市| 石门县| 玛纳斯县| 通榆县| 安吉县| 东阿县| 云安县| 泾阳县| 儋州市| 台东县| 景东| 邢台市| 大厂| 铜川市| 和平县| 建瓯市| 和田市| 泸州市| 五台县| 岗巴县|