zoukankan      html  css  js  c++  java
  • dubbo入门

    1.建立服务端

    新建一个web工程,工程目录如下:

    pom.xml配置

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.11.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>dubbo-server</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8080</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

    1.1      编写要发布的接口

    package service;
    //要发布的接口
    public interface HelloService {
        //要发布的方法
        String sayHello();
    }

    1.2      实现接口功能

    package service;
    
    public class HelloServiceImpl implements HelloService {
    
        @Override
        public String sayHello() {
            return "HELLO DUBBO";
        }
    }

    1.1      发布服务

    <?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">
    
        <bean id="helloServiceImpl" class="service.HelloServiceImpl"/>
        <!-- 发布dubbo服务 -->
        <!-- 提供方应用信息,用于计算依赖关系 -->
        <dubbo:application name="dubbo-server-test"/>
        <!-- 注册中心的地址 -->
        <dubbo:registry protocol="zookeeper" address="10.0.31.98:2181"/>
        <!-- 用dubbo协议在20880端口暴露服务 -->
        <dubbo:protocol name="dubbo" port="20880"/>
        <!-- 声明需要暴露的服务接口 -->
        <dubbo:service interface="service.HelloService" ref="helloServiceImpl" timeout="300000"/>
    </beans>

    1.4web.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
              http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
    
      <!--加载spring配置文件-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-service.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    </web-app>

    配置maven的tomcat插件,发布:

    2. Dubbo管理后台

     

    是dubbo的管理后台。

    先关掉服务器的tomcat

    上传到服务器的tomcat的wabapp目录下

    启动tomcat。

    http://服务器ip:8080/dubbo-admin-2.8.4/            

    登录的用户名密码都是root

    3.客户端

    普通的java工程即可,使用main方法测试:

    pom.xml配置:

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.11.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
    </dependencies>

    3.1      编写接口

    HelloService同1.1中的一样。

    3.2   spring调用服务

    spring-config.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="dubbo-client-test"/>
        <dubbo:registry protocol="zookeeper" address="10.0.31.98:2181"/>
        <dubbo:reference interface="service.HelloService" id="helloService"/>
    </beans>

    3.3测试

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import service.HelloService;
    
    public class ClientTest {
        public static void main(String[] args) {
            ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");
            HelloService helloService = (HelloService) ac.getBean("helloService");
            System.out.println(helloService.sayHello());
        }
    }


    本博客文章均已测试验证,欢迎评论、交流、点赞。
    部分文章来源于网络,如有侵权请联系删除。
    转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/9260310.html

  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/sueyyyy/p/9260310.html
Copyright © 2011-2022 走看看