远程服务调用-JMS协议

Aop框架提供了一套符合jms 1.1 规范的JMS接收和发送消息接口框架(参见章节【1.10.JMS组件框架】),支持各种不同的JMS服务器。并且基于这套接口框架实现jms协议rpc远程服务调用,目前框架采用Apache Active MQ jms服务器来作为rpc jms协议实现。Apache active mq的技术资料可参考其官方网站【http://activemq.apache.org/】。你还可以采用其他的jms服务器作为rpc jms协议的实现。在启动jms协议服务前,必须启动jms服务器。

下面详细介绍RPC JMS协议的使用和配置方法。

 

jms协议
1.1.1.1             Jms协议配置

Jms协议对应的配置文件为:

/bbossaop/resources/org/frameworkset/spi/manager-rpc-jms.xml

该文件在RPC基本协议配置文件中导入:

/bbossaop/resources/org/frameworkset/spi/manager-rpc-service.xml

<!--

           导入jms服务配置

        -->

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

 

如果使用jms rpc协议,用户只需修改以下几个参数即可:

*         服务器标识:

<property name="server_uuid" value="yinbiaoping-jms"/> 

*         Jms服务器连接信息:

<property name="connectURL"

                    value="tcp://172.16.17.218:61624"/>            

           <property name="username"

                    value="system" />  

           <property name="password"

                    value="manager" />        

           <property name="usepool"

                    value="true" />

*         是否启用重连机制

<property label="是否启用重连机制" name="USE_FAILOVER"

                  value="true" class="boolean">

 

下面具体说明配置内容。Jms协议配置包含两部分:协议处理组件和jms协议的连接参数配置。

1.1.1.1.1       jms请求和响应处理组件

    <property name="rpc.jms.RPCServerIoHandler" singlable="true" class="org.frameworkset.spi.remote.jms.RPCJMSIOHandler">   

       <construction>

           <!--

              设置处理器的名字

            -->

           <property name="name"

                    value="RPCJMSIOHandler" class="String"/>

           <!--

              设置请求的处理器

            -->         

           <property name="request_handler"

                    refid="attr:rpc.request_handler" />  

           <!--

              设置连接工厂对象

            -->

           <property name="connectionFactory"

                    refid="attr:rpc.jms.ConnectionFactory" />   

           <!--

              发送远程请求消息的目标队列

            -->

           <property name="requestto" value="rpc.request.queue"/>

           <!--

               接收响应消息的目标队列

            -->

           <property name="replyto" value="rpc.response.queue"/>

           <!--

                服务器标识,作为客服端调用的请求地址使用,例如:

                服务地址:(jms::00-23-54-5A-E6-3A-jms)/serviceid,标识将rpc调用发送到server_uuid标识为00-23-54-5A-E6-3A-jms的远程主机上面

               服务器接收到消息后在根据调用端server_uuid标识将响应发回到调用端,每台服务器的地址标识必须全局唯一,一旦确定后就不要更改

            -->

           <property name="server_uuid" value="yinbiaoping-jms"/>           

       </construction>         

    </property>  

    一般情况下用户只需要配置和修改server_uuid属性,这个属性配置的值将作为客服端调用服务的远程服务器地址来使用,例如要调用上述服务器中rpc.test组件的url地址为:

 

(jms::yinbiaoping-jms)/rpc.test

 

同时客服端也需要配置其server_uuid做为服务器响应的结果的发送地址。采用jms rpc的服务器和客服端的server_uuid必须唯一。

1.1.1.1.2       jms连接工厂配置

   

    <property name="rpc.jms.ConnectionFactory" singlable="true" class="org.frameworkset.mq.AMQConnectionFactory">   

       <construction>      

           <property name="connectURL"

                    value="tcp://172.16.17.218:61624"/>            

           <property name="username"

                   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值