Dubbo --- первый опыт

1, структура проекта (проект Maven) 

                    

2, dubbotest.pom

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<XMLNS Project = "http://maven.apache.org/POM/4.0.0" 
         XMLNS: XSI = «HTTP: //www.w3 .org / 2001 / "THE XMLSchema инстанции 
         http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">: XSI SchemaLocation = " 
    <modelVersion> 4.0.0 </ modelVersion> 

    <GroupID> com.an </ GroupID> 
    <артефакта> Dubbo-Test </ артефакта> 
    <упаковка> POM </ Тара и упаковка> 
    <версия> СНАПШОТ-1,0 </ Version> 

    <Свойства > 
        <motan.version> 0.3.0 </motan.version> 
        <- GA версия широко используется во внутреннем Алибабе :! 2.4.9, эта версия настоятельно рекомендуется -> 
        <Даббо.версия> 2.5.3 </dubbo.version> 
        <dubbox.version> 2.8.4 </dubbox.version>
        <spring.version> 4.3.6.RELEASE </spring.version>
                    <идентификатор_группы> org.springframework </ идентификатор_группы>
        <java.version> 1,7 </java.version> 
        <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> 
    </ Свойства> 


    <модули> 
        <модуль> Поставщик </ модуль> 
        <модуль> Потребитель < / модуль> 
        <модуль> апи </ модуль> 
    </ модули> 

    <зависимостей> 
        <зависимость> 
            <идентификатор_группы> com.alibaba </ идентификатор_группы> 
            <артефакт> Dubbo </ артефакт> 
            <версия> 2.5.3 </ версия> 
            < исключения> 
                <исключение> 
                    <артефакта> весна </ артефакт>
                </ исключение> 
            </ исключения> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> com.github.sgroschupf </ идентификатор_группы> 
            <артефакт> zkclient </ артефакт> 
            <версия> 0,1 </ версия> 
        </ зависимость> 
        <! - - весна相关-> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-ядро </ артефакт> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            < идентификатор_группы> org.springframework </ идентификатор_группы>
            <артефакт> весна-бобы </ артефакт>
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы>
            <артефакта> весна-контекст </ артефакта> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна JDBC </ артефакта> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-веб </ артефакт> 
            <версия> $ {spring.version} </ версия>
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы>
            <артефакт> весна-webmvc </ артефакт>
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-АОП </ артефакта> 
            <версия> $ {spring.version} < / версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-ТХ </ артефакта> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы>версия} </ версия> 
        </ зависимость> 
        <зависимость>springframework </ идентификатор_группы> 
            <артефакта> весна-ОРМ </ артефакт>
            <версия> $ {spring.version} </ версия> 
        <зависимость>
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-контекст-поддержка </ артефакта> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-тест </ артефакт> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.springframework </ идентификатор_группы> 
            <артефакта> весна-JMS </ артефакта> 
            <версия> $ {spring.version} </ версия> 
        </ зависимость>
            <идентификатор_группы> org.aspectj </ идентификатор_группы> 
            <артефакт> aspectjrt </ артефакт> 
            <версия> 1.6.11 </ версия> 
        </ зависимость> 
        <зависимость> 
            <идентификатор_группы> org.aspectj </ идентификатор_группы> 
            <артефакта> aspectjweaver < / артефакта> 
            <версия> 1.6.11 </ версия> 
        </ зависимость> 
    </ зависимостей> 

</ проект>

3, апи

    3.1, п

      

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<проект XMLNS = "http://maven.apache.org/POM/4.0.0" 
         Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» 
         XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <родитель> 
        <артефакта> Dubbo-тест </ артефакта> 
        <идентификатор_группы> com.an </ идентификатор_группы> 
        <версия> 1.0-СНАПШОТ </ версия> 
    </ родитель> 
    <modelVersion> 4.0.0 </ modelVersion> 

    <артефакта> апите </ артефакт> 


</ проект>

    3,2, HelloService

пакет com.an.service; 

открытый интерфейс HelloService { 
    Строка SayHello (String тзд); 
}

4, поставщик

    4,1, П

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<проект XMLNS = "http://maven.apache.org/POM/4.0.0" 
         Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» 
         XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <родитель> 
        <артефакта> Dubbo-тест </ артефакта> 
        <идентификатор_группы> com.an </ идентификатор_группы> 
        <версия> 1.0-СНАПШОТ </ версия> 
    </ родитель> 
    <modelVersion> 4.0.0 </ modelVersion> 

    <артефакта> провайдер </ артефакт> 

    <свойства> 
        <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> 
    </ свойства> 

    <зависимостей> 
        <зависимость>
            <идентификатор_группы> com.an </ идентификатор_группы>
            <артефакта> апи </ артефакт> 
            <версия> 1,0-ПАНОРАМА </ версия> 
        </ зависимость> 
    </ зависимостей> 


</ проект>

    4.2, log4j.properties

### уровней набор LOG ### 
log4j.rootLogger = информация, STDOUT 
### выводится на консоль ### 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target = System.out 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = [% d {дд / мм / гг чч: мм: сс: SSS г}]% т% 5p% гр {2}:% м% н

  

     
    4,3, HelloServiceImpl

пакет com.an.service; 


общественный класс HelloServiceImpl реализует HelloService { 

    общественного String , SayHello (Строка Msg) { 
        возвращение Сообщи; 
    } 
}

 

    4.4, Dubbo-provider.xml

<? XML версия = "1,0" кодировка = "UTF - 8"> 
<Фасоль Xmlns = "http://www.springframework.org/schema/beans" 
       XMLNS: XSI = «http://www.w3.org / 2001 / XMLSchema инстанции " 
       XMLNS: Dubbo =" http://code.alibabatech.com/schema/dubbo " 
       XSI: SchemaLocation =" http://www.springframework.org/schema/beans 
                           HTTP: // ВСП. springframework.org/schema/beans/spring-beans.xsd 
                           http://code.alibabatech.com/schema/dubbo 
                           http://code.alibabatech.com/schema/dubbo/dubbo.xsd «> 

    
    <! - предложения партия имя приложения -> 
    <Dubbo: имя приложения = "Dubbo-провайдер" /> 
    <- с использованием многоадресного воздействия адрес службы реестра ->!
    <Даббо: реестр адрес = "многоадресный: //224.5.6.7: 1234" />
    <! - Даббо соглашение с воздействием портовых услуг 20880 ->
    <Dubbo: Протокол имя = "Dubbo" Port = "20880" /> 
    <- - оператор должен подвергаться ошибки тайм - аута службы интерфейса тайм - аут в течение долгого времени тоже!> 
    <Dubbo: Сервисный интерфейс = «com.an.service.HelloService "REF =" HelloService "тайм - аут =" 5000 «/> 


</ Фасоль>

  

   4.5, ProviderRunner

пакет com.an; 

импорт org.springframework.context.support.ClassPathXmlApplicationContext; 
импорт java.io.IOException; 

общественного класса ProviderRunner { 
    государственной статической силы основных (String [] арг) бросает IOException { 
        ClassPathXmlApplicationContext контекст = новый ClassPathXmlApplicationContext (новый String [] { "Dubbo-provider.xml"}); 
        context.start (); 
        System.out.println ( "поставщик ... начал ..."); 
        System.in.read (); 
    } 
}

5, потребитель

    5,1, П

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<проект XMLNS = "http://maven.apache.org/POM/4.0.0" 
         Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» 
         XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <родитель> 
        <артефакта> Dubbo-тест </ артефакта> 
        <идентификатор_группы> com.an </ идентификатор_группы> 
        <версия> 1.0-СНАПШОТ </ версия> 
    </ родитель> 
    <modelVersion> 4.0.0 </ modelVersion> 

    <артефакта> потребитель </ артефакт> 

    <зависимостей> 
        <зависимость> 
            <идентификатор_группы> ком.ап </ идентификатор_группы> 
            <артефакта> апи </ артефакта>  
            <версия> 1.0-СНАПШОТ </ версия>
        </ зависимость>
    </ зависимостей> 

</ проект>

    5.2, log4j.properties

### уровней набор LOG ### 
log4j.rootLogger = информация, STDOUT 
### выводится на консоль ### 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target = System.out 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = [% d {дд / мм / гг чч: мм: сс: SSS г}]% т% 5p% гр {2}:% м% н

    5,3, Dubbo-потребитель

<? XML версия = "1,0" кодировка = "UTF - 8"> 
<Фасоль Xmlns = "http://www.springframework.org/schema/beans" 
       XMLNS: XSI = «http://www.w3.org / 2001 / XMLSchema инстанции " 
       XMLNS: Dubbo =" http://code.alibabatech.com/schema/dubbo " 
       XSI: SchemaLocation =" http://www.springframework.org/schema/beans 
                           HTTP: // ВСП. springframework.org/schema/beans/spring-beans.xsd 
                           http://code.alibabatech.com/schema/dubbo 
                           http://code.alibabatech.com/schema/dubbo/dubbo.xsd «> 

    <! - потребление партия имя приложения -> 
    <Dubbo: имя приложения = «Dubbo-Потребитель» /> 
    <! - широковещательная с помощью группового обнаружения службы адреса подвергания реестра ->
    <Даббо: реестр адрес = "многоадресный: //224.5.6.7: 1234" />
    <! - генерируется агент удаленного обслуживания, вы можете использовать один и тот же локальный demoService боба ->
    <Даббо: Reference ID = интерфейс "HelloService" = "com.an.service.HelloService" /> 

</ бобы>

    5,4, ConsumerRunner

пакет com.an; 

импорт com.an.service.HelloService; 
импорт org.springframework.context.support.ClassPathXmlApplicationContext; 

общественного класса ConsumerRunner { 

    государственной статической силы основных (String [] арг) { 
        ClassPathXmlApplicationContext контекст = новый ClassPathXmlApplicationContext (новый String [] { "Dubbo-consumer.xml"}); 
        context.start (); 
        HelloService HelloService = (HelloService) context.getBean ( "HelloService"); 
        Строка тзд = helloService.sayHello ( "привет мир"); 
        System.out.println (MSG); 
    } 
}

  

    

 

рекомендация

отwww.cnblogs.com/anpeiyong/p/10991171.html