Dubbo combat (2) Multi-protocol configuration

This article will show how to expose services using multiple protocols in Dubbo.

1. Different services with different agreements

For example, different services use different protocols for transmission in terms of performance. For example, a short connection protocol is used for large data, and a long connection protocol is used for small data and large concurrency. The configuration is as follows:

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2. Multi-protocol exposure services

For example, interoperability with http client is required, and the configuration is as follows: 
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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

Among them, HelloService uses the dubbo and hessian protocols to provide services to the outside world.

References

Dubbo User Guide:http://dubbo.io/User+Guide-zh.htm

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325383364&siteId=291194637