zoukankan      html  css  js  c++  java
  • maven+dubbo+zookeeper 基础实例

    1.maven  引入依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Junyang.Li</groupId>
    <artifactId>dubboEntryDoor</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>dubboEntryDoor Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit-version>4.9</junit-version>
    <!--spring + dubbo + zk为构建dubbo的服务必须依赖-->
    <spring.version>4.1.4.RELEASE</spring.version>
    <dubbo.version>2.5.3</dubbo.version>
    <zookeeper.version>3.4.8</zookeeper.version>
    <zkclient.version>0.1</zkclient.version>
    </properties>

    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>

    <!-- dubbo begin -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.1</version>
    <!-- <exclusions>
    <exclusion>
    <artifactId>spring</artifactId>
    <groupId>org.springframework</groupId>
    </exclusion>
    </exclusions> -->
    </dependency>
    <!-- dubbo end -->
    <dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>${zkclient.version}</version>
    </dependency>
    <!--spring的依赖包   测试可以不用这些包-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.6</version>
    <exclusions>
    <exclusion>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
    </dependency>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
    </dependency>
    <!----spring结束-->
    <dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>2.9.0</version>
    </dependency>

    </dependencies>
    <build>
    <finalName>dubboEntryDoor</finalName>
    </build>
    </project>

    代码示例:

    api接口

    package dubboEntryDoor.api;
    public interface DemoService {
    String sayHello(String name);
    }

    生产者:

    package provider;

    import dubboEntryDoor.api.DemoService;

    public class DemoServiceImpl implements DemoService {
    public String sayHello(String name) {
    return "Hello " + name;
    }
    }

    <?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="demo-provider"/>
    <!-- <dubbo:registry address="multicast://224.5.6.7:1234"/> -->
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    <dubbo:protocol name="dubbo" port="20880"/>
    <dubbo:service interface="dubboEntryDoor.api.DemoService" ref="demoService"/>
    <bean id="demoService" class="provider.DemoServiceImpl"/>
    </beans>

    启动生产者:

    package provider;

    import java.io.IOException;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

    public class TestProvider {

    public static void main(String[] args) throws IOException {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
    new String[] {"spring-provider.xml"});
    context.start();
    // press any key to exit
    System.out.println("输入任意键退出");
    System.in.read();
    }
    }

    消费者:

    <?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="demo-consumer"/>
    <!-- <dubbo:registry address="multicast://224.5.6.7:1234"/> -->
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    <dubbo:reference id="demoService" interface="dubboEntryDoor.api.DemoService"/>
    </beans>

    package consumerTest;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import dubboEntryDoor.api.DemoService;

    public class Consumer {
    public static void main(String[] args) throws Exception {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
    new String[]{"spring-consumer.xml"});
    context.start();
    // obtain proxy object for remote invocation
    DemoService demoService = (DemoService) context.getBean("demoService");
    // execute remote invocation
    String hello = demoService.sayHello("world");
    // show the result
    System.out.println(hello);
    }
    }

    zookeeper下载参考:https://jingyan.baidu.com/article/335530dafd4b3619cb41c3d8.html

  • 相关阅读:
    vmware磁盘空间扩展
    Winrar发现损坏的压缩文件头
    java ASM动态生成类
    使用ffmpeg将任意格式视频转MP4格式
    mongodb导入csv结构化数据
    Vmware黑屏解决方法
    mysql命令行导入结构化数据
    mysql导入慢解决方法
    CategoryPanelGroup动态生成节点
    delphi XE7 判断手机返回键
  • 原文地址:https://www.cnblogs.com/ljy-skill/p/8698615.html
Copyright © 2011-2022 走看看