1. 程式人生 > >Dubbo實戰(二)多協議配置

Dubbo實戰(二)多協議配置

本文將展示如何在Dubbo中使用多協議來暴露服務。

1、不同服務不同協議

例如:不同服務在效能上適用不同協議進行傳輸,比如大資料用短連線協議,小資料大併發用長連線協議。配置如下:

provider-multi-protocol.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方應用資訊,用於計算依賴關係 --> <dubbo:application name="dubbo-provider-app" />
<!-- 使用zookeeper註冊中心暴露服務地址 --> <dubbo:registry id="zk_registry" address="zookeeper://127.0.0.1:2181" /> <!-- 多協議配置 --> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name="rmi" port="20980" /> <!-- 使用dubbo協議暴露服務 --> <dubbo:service
interface="com.ricky.dubbo.api.DemoService" ref="demoService" protocol="dubbo" />
<!-- 使用rmi協議暴露服務 --> <dubbo:service interface="com.ricky.dubbo.api.HelloService" ref="helloService" protocol="rmi" /> <bean id="demoService" class="com.ricky.dubbo.provider.impl.DemoServiceImpl"/> <bean id="helloService" class="com.ricky.dubbo.provider.impl.HelloServiceImpl"/> </beans>

2、多協議暴露服務

例如,需要與http客戶端互操作,配置如下:
provider-multi-protocol.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方應用資訊,用於計算依賴關係 -->
    <dubbo:application name="dubbo-provider-app"  />

    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry id="zk_registry" address="zookeeper://127.0.0.1:2181" />

    <!-- 多協議配置 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <dubbo:protocol name="hessian" port="20980" />

    <!-- 使用dubbo協議暴露服務 -->
    <dubbo:service interface="com.ricky.dubbo.api.DemoService" ref="demoService" protocol="dubbo" />
    <!-- 使用rmi協議暴露服務 -->
    <dubbo:service interface="com.ricky.dubbo.api.HelloService" ref="helloService" protocol="dubbo,hessian"  />


    <bean id="demoService" class="com.ricky.dubbo.provider.impl.DemoServiceImpl"/>

    <bean id="helloService" class="com.ricky.dubbo.provider.impl.HelloServiceImpl"/>

</beans>

其中,HelloService同時使用dubbo,hessian協議對外提供服務。

參考資料