bbossgroups2.0-RC版本中如何通過JGroups來實現叢集節點間遠端服務呼叫,或者多伺服器之間遠端服務呼叫
bbossgroups 2.0-RC中對jgroups已經升級到Jgroups 2.10.0版本,因此對aop中基於JGroups的rpc也做了相應的調整,本文詳細講解新的使用方法:
1.配置檔案目錄調整:
jgroups本身協議配置檔案和存放目錄(tcp,udp)
/bbossaop/resources/org/frameworkset/spi/jgroups/jgroups-tcp.xml
/bbossaop/resources/org/frameworkset/spi/jgroups/jgroups-udp.xml
manager-rpc-service.xml中針對JGroups的相應配置為:
<!–
jgroups叢集協議配置
–>
<property name=”cluster_name” value=”Cluster”/>
<property name=”cluster_protocol” value=”udp”/>
<property name=”cluster_protocol.tcp.configfile” value=”org/frameworkset/spi/jgroups/jgroups-tcp.xml”/>
<property name=”cluster_protocol.udp.configfile” value=”org/frameworkset/spi/jgroups/jgroups-udp.xml”/>
2.JGroups協議單獨啟動方法沒有改變,還是以下的方法:
RPCHelper.getRPCHelper().startJGroupServer();
基於bboss開發的平臺中啟動jgroups的方法,manager-rpc-service.xml中的相關項做如下設定即可:
<property name=”rpc.default.protocol”
value=”jgroup”/>
<property name=”rpc.startup.protocols”
value=”jgroup”/>
<property name=”rpc.security” >
<map>
<property name=”rpc.login.module” enable=”false” class=”org.frameworkset.spi.security.SimpleLoginModule”/>
<property name=”rpc.authority.module” enable=”false” class=”org.frameworkset.spi.security.SimpleAuthorityModule”/>
<property name=”data.encrypt.module” enable=”false” class=”org.frameworkset.spi.security.SimpleEncryptModule”/>
</map>
</property>
每個節點應用的udp協議檔案jgroups-udp.xml中的組播地址設定成一樣的即可:
mcast_addr=”232.10.10.10″
地址值可以根據需要進行修改。
3.客服端相關介面及使用方法
獲取叢集節點地址集合方法:
Vector<Address> addresses = JGroupHelper.getJGroupHelper().getAppservers();
獲取遠端服務元件方法:
* 單播
Address address_ = addresses.get(0);
RPCTestInf testInf = (RPCTestInf)ApplicationContext.getApplicationContext().getBeanObject(“(jgroup::” + address_ + “)/rpc.test”);
呼叫遠端方法:
Object value = testInf.getCount();
* 多播
Address address_0 = addresses.get(0);
Address address_1 = addresses.get(1);
RPCTestInf testInf = (RPCTestInf)BaseSPIManager.getBeanObject(“(jgroup::”+address_0+”;”+address_0+”)/rpc.test”);
呼叫遠端方法:
Object value = testInf.getCount();
獲取address_0的結果:
Object ret_0 = BaseSPIManager.getRPCResult(address_0.toString(), value ,Target.BROADCAST_TYPE_JRGOUP);
獲取address_1的結果:
Object ret_1 = BaseSPIManager.getRPCResult(“address_1.toString(), ret,Target.BROADCAST_TYPE_JRGOUP);
* 組播
RPCTestInf testInf = (RPCTestInf)BaseSPIManager.getBeanObject(“(jgroup::all)/rpc.test”);
呼叫遠端方法:
Object value = testInf.getCount();
遍歷所有結果:
int size = BaseSPIManager.getRPCResultSize(ret);
for(int j = 0; j < size; j ++)
{
Object ret = BaseSPIManager.getRPCResult(j, ret);
System.out.println(“ret:” + j + ” = “+ret_1186);
}
相關文章
- bbossaop遠端服務介紹-點對點遠端服務呼叫和組播服務呼叫的區別
- bbossaop遠端服務介紹-遠端服務呼叫例項
- dubbo 遠端服務無法呼叫
- eureka實現服務之間的呼叫
- 《遠端控制》-服務端實現(一)服務端
- (2)什麼是服務拆分和遠端呼叫
- Android程式使用SOAP呼叫遠端WebService服務AndroidWeb
- 快速開啟服務或者IIS或者遠端桌面
- spring cloud feign實現遠端呼叫服務傳輸檔案SpringCloud
- 遠端終端服務的簡單實現
- 小白的學習筆記——服務拆分和遠端呼叫筆記
- openlayer呼叫wms服務端服務端
- bbossaop遠端服務介紹-遠端服務id定義規則
- 微服務~Eureka實現的服務註冊與發現及服務之間的呼叫微服務
- 請教: jboss下 透過rmi呼叫其他機器上的遠端服務
- Redis服務之叢集節點管理Redis
- 『中級篇』叢集服務間通訊之RoutingMesh(47)
- win10 如何開啟遠端服務_win10如何開啟遠端連線服務Win10
- 如何在Flutter中整合華為遠端配置服務Flutter
- grpc實戰——服務端流式呼叫RPC服務端
- 本地MinIO儲存服務Java遠端呼叫上傳檔案Java
- 本地除錯遠端服務除錯
- C# 之 服務端獲取遠端資源C#服務端
- 服務之間的呼叫 HTTP代替RPC?HTTPRPC
- SpringCloud(一)微服務遠端呼叫 -- RestTemplateSpringGCCloud微服務REST
- eureka踩過的坑之註冊服務相互之間呼叫
- NAS教程丨如何透過DDNS實現SMB服務的遠端訪問?DNS
- [菜鳥SpringCloud入門]第四章:遠端呼叫服務實戰SpringGCCloud
- RPC框架/高效能遠端同步呼叫框架/分散式服務框架RPC框架分散式
- Go語言高併發與微服務實戰專題精講——遠端過程呼叫 RPC——服務端註冊實現原理分析Go微服務RPC服務端
- spring 的遠端服務是?Spring
- Windows遠端連線Docker服務WindowsDocker
- 遠端呼叫服務(RPC)和基於訊息的通訊(Message Queue)對比RPC
- 如何在命令列下遠端安裝終端服務命令列
- 服務端呼叫微信小程式OCR識別介面實現服務端微信小程式
- Java遠端呼叫Java
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- 分散式服務框架之遠端通訊技術及原理分析分散式框架