DubboとSpringの併用

4216 ワード

Dubboはサービスガバナンスの枠組みであり、分布式サービスの管理とガバナンス、監視に良い実現がある.
 
この例では、DubboとSpringの組み合わせを説明します.
1.  Mavenはdubboの構成を導入
<dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
</dependency>

 
2.  SpringのDubbo providerプロファイルを追加spring-dubbo-provider.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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">
    <!--          ,          , dubbo                   -->
    <dubbo:application name="user_provider"/>
    <!--   zookeeper         -->
    <dubbo:registry address="${zookeeper.registry}"/>

    <dubbo:protocol port="${dubbo.provider.port}"/>

    <dubbo:monitor protocol="registry"/>
    <!--         -->
    <dubbo:service interface="com.test.api.UserService"
                   ref="userService" timeout="5000" retries="2" />

    <bean id="userService" class="com.test.service.UserServiceImpl" />

</beans>

 
3.インタフェースと実装クラスコード:
UserServiceインタフェース:
public interface UserService {
   public String hello(String name);
}

 
UserServiceImplクラス:
public interface UserServiceImpl implement UserService {
   public String hello(String name){
        return "hello"+name;
   }
}

 
4.消費者側のプロファイル
<?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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">

    <!--       ,        ,      ,         -->
    <dubbo:application name="user_consumer" />

    <dubbo:registry address="${zookeeper.registry}"/>
    <dubbo:monitor protocol="registry"/>

    <!--        -->
    <dubbo:reference id="userPointsFacade" interface="com.dmall.points.api.UserPointsFacade" timeout="10000" check="false" />

</beans>

 
5.テストクラス
public class UserPonitsTest {

    public static void main(String[] args) throws InterruptedException{
        start();
    }
    public void testApp() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring/dubbo-consumer.xml"});
        context.start();

        try {
            System.in.read();               //           ,           
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

 
 
6.dubbo-adminパッケージを使用すると、dubboのサービスを管理および監視できます.