9.5 远程服务调用框架-远程服务调用协议-RPC基本协议配置

远程调用框架提供了几种协议来实现远程调用功能:jgroupjmsminawebservice(针对apache cxf webservice框架)。本节专门介绍这几种协议的使用方法。在介绍每种协议之前先介绍aop框架的rpc协议基本配置。

1.1.1   RPC基本协议配置

Aop框架的RPC基本协议配置在

/bbossaop/resources/org/frameworkset/spi/manager-rpc-service.xml文件中,并且通过这个文件导入通讯协议配置文件。manager-rpc-service.xml文件在aop框架的主文件

manager-provider.xml中导入:

<managerimport file="org/frameworkset/spi/manager-rpc-service.xml" />

      

manager-rpc-service.xml文件的内容说明如下:

 

1.1.1.1             远程调用处理服务组件

 

       <property name="rpc.server_object" singlable="true"

                        class="org.frameworkset.spi.remote.DefaultRemoteHandler"/>

                       

1.1.1.2             公用的服务请求处理类,处理所有协议的服务器端请求

              <property name="rpc.request_handler" singlable="true"

                       class="org.frameworkset.spi.remote.RPCRequestHandler">

           <construction>

              <property name="serverobject"

                        refid="attr:rpc.server_object" />

           </construction>            

       </property>  

1.1.1.3             restful风格地址转换器    配置

<property name="rpc.restful.convertor" singlable="true"

                        class="org.frameworkset.spi.serviceid.RestfulServiceConvertorImplTest"/>          

1.1.1.4             默认通讯协议   

    <property name="rpc.default.protocol"

                        value="jms"/>

    一个完整的远程组件访问地址的实例如下:

           (protocol::ip:port)/serviceid

           如果应用程序没有指定protocol头,例如:

           ip:port/serviceid

           将使用rpc.default.protocol指定的协议 

 

1.1.1.5             RPC服务启动模式

       RPC协议服务启动模式配置

           auto 内嵌模式启动,框架将启动rpc.startup.protocols配置的协议

                    相关的服务,比如minajgroup

           mannual:手动模式,配置成这种模式的话,需要应用显示地调用相关启动方法来启动服务。

          

       <property name="rpc.startup.mode"

                        value="auto"/>

这个配置【rpc.startup.mode】控制方法行为:

org.frameworkset.spi.remote.RPCHelper.startServers();

如果rpc.startup.mode的值为auto,那么运行方法startServers()将启动,rpc.startup.protocols配置的RPC协议;为mannualstartServers()方法将不执行任何操作。

用户可以执行另外一个方法:

org.frameworkset.spi.remote.RPCHelper.startRPCServices();这个方法不受rpc.startup.mode属性的控制,将直接启动rpc.startup.protocols中配置的协议。

 

1.1.1.6             默认启动协议配置

           rpc服务运行时需要启动的服务协议配置,多个协议用,号分隔

           mina:启动mina

           jgroup:表示启动jgroup

可以是mina jgroup jms中的任一种组合,同时启动多个服务时,用【,】号分隔。

Webservice服务不需要启动,因为其和应用服务器中的应用一起启动,通过在web应用的web.xml文件中配置以下servlet来发布和启动webservice rpc服务:

org.apache.cxf.transport.servlet. RPCCXFServlet

       <property name="rpc.startup.protocols"

                        value="jms"/>   

 

用户可以执行下述两个方法来启动rpc.startup.protocols中配置的协议

org.frameworkset.spi.remote.RPCHelper.startServers();这个方法受rpc.startup.mode配置的启动模式的控制,只有auto时才生效。

org.frameworkset.spi.remote.RPCHelper.startRPCServices();

 

 

RPCHelper中提供了单独启动每个rpc协议的方法:

启动jgroup协议org.frameworkset.spi.remote.RPCHelper.startJGroupServer()

启动jms协议

org.frameworkset.spi.remote.RPCHelper.startJMSServer()

启动mina协议

org.frameworkset.spi.remote.RPCHelper.startMinaServer()

            

1.1.1.7             等待请求响应超时时间

请求响应超时时间,单位为秒,默认为60

              <property name="rpc.request.timeout"

                        value="60"/>    

如果请求发出60秒后没有接受到响应,那么rpc框架将抛出请求超时异常。

1.1.1.8             配置多播地址范围            

<property name="rpc.all.servers" value="127.0.0.1:12347;127.0.0.1:12346"/>  

多播静态地址列表配置,用于客服端广播远程调用时的请求范围,当客服端执行服务 (protocol::all)/serviceid调用时,请求将被分别发送到rpc.all.servers 中配置的服务器地址上去,例如:

server 127.0.0.1:12346server 127.0.0.1:12347

发送过程是异步方式发送。rpc.all.servers的配置只适用于mina,jms,webservice协议,jgroup协议的多播地址在jgroup的协议配置文件中单独管理(udp协议根据组播地址来决定动态地址列表,tcp协议通过其自身配置的静态地址列表来决定)。不同的协议的地址格式不同,例如(这里只举例说明,含义在具体协议中再说明):

Ø         Mina组播地址配置

<property name="rpc.all.servers" value="127.0.0.1:12347;127.0.0.1:12346"/>

Ø         jms的组播地址配置

<property name="rpc.all.servers" value="server_uuid1;server_uuid2"/>

          

Ø         webservice的组播地址配置

 

<property name="rpc.all.servers" value="http://ip:port/context/cxfservices;http://ip1:port/context/cxfservices"/>

 

1.1.1.9             远程服务调用请求和响应模式

    客服端远程服务发送请求模式采用异步发送-同步等待处理结果的模式

           服务器端处理模式基于rpc协议的处理模式,

                         jgroup(异步事件处理模式),

                         jms(异步事件处理模式),

                         minanio模式),

                         cxf webservice(高效的异步处理模式)

      

      

1.1.1.10       安全管理服务配置

system.securityManager提供aop框架的安全管理组件,提供了以下功能

认证

鉴权

/解密

<property name="system.securityManager" singlable="true" class="org.frameworkset.spi.security.SecurityManagerImpl">

           <construction>

              <property name="securityconfig"

                        refid="attr:rpc.security" />  

           </construction>  

       </property>

1.1.1.11       认证、鉴权、加/解密插件配置

Aop框架提供了以下插件:

org.frameworkset.spi.remote.security.LoginModule

org.frameworkset.spi.remote.security.AuthorityModule

org.frameworkset.spi.security.EncryptModule

分别实现认证、鉴权、加/解密功能。系统中提供了相应的简单实现:

org.frameworkset.spi.security.SimpleLoginModule

org.frameworkset.spi.security.SimpleAuthorityModule

org.frameworkset.spi.security.SimpleEncryptModule

 

具体的描述可以参考【1.9.4安全管理】中的介绍。

       <property name="rpc.security" >

           <map>

              <property name="rpc.login.module" enable="true" class="org.frameworkset.spi.security.SimpleLoginModule"/>

              <property name="rpc.authority.module" enable="true" class="org.frameworkset.spi.security.SimpleAuthorityModule"/>

              <property name="data.encrypt.module" enable="true" class="org.frameworkset.spi.security.SimpleEncryptModule"/>

           </map>

       </property>

      

      

 

1.1.1.12       jgroups集群协议配置

Ø         集群名称配置-cluster_name

       <property name="cluster_name" value="Cluster"/>

Ø         集群通讯协议配置

       <property name="cluster_protocol" value="tcp"/>

Ø         集群协议配置文件配置

       <property name="cluster_protocol.tcp.configfile" value="etc/META-INF/replSync-service-aop-tcp.xml"/>

       <property name="cluster_protocol.udp.configfile" value="etc/META-INF/replSync-service-aop.xml"/>

详情参考【1.9.5.2 JGroup协议】介绍。

1.1.1.13       webservice协议配置

      

       <managerimport file="org/frameworkset/spi/manager-rpc-webservices.xml" />

      

1.1.1.14       导入jms服务配置

<managerimport file="org/frameworkset/spi/manager-rpc-jms.xml" />    

1.1.1.15       导入mina服务配置

<managerimport file="org/frameworkset/spi/manager-rpc-mina.xml" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值