dubbo入门实例

前几天换工作,到新公司用到了阿里的Dubbo,花了两天的时间去学习,在网上找了很多教程,感觉都不是太详细,所以动手搭了下环境,写了这篇XX。

有关dubbo的介绍就不多说了,请查阅官方文档:http://dubbo.io/

简介

本次环境搭建用到的工具:IDEA,maven,zookeeper。

首先介绍下项目的大概情况,首先是一个maven父工程DubboTest,下面有三个子工程DubboConsumer,DubboProvider,DubboCommon。

  • DubboTest:总的项目,父工程,需要的依赖都在这里配置。
  • DubboConsumer:非web项目,dubbo的消费方。
  • DubboProvider:非web项目,dubbo服务提供方。
  • DubboCommon:非web项目,打成Jar包,是DubboConsumer和-
    DubboProvider共享的包,里面定义的是公用的接口。

以上相关的概念就不多做解释了。

项目代码:https://github.com/dachengxi/DubboTest

搭建

  • 打开IDEA,New Project,选中Maven项目,不要勾选Create from archetype,点击next,填写GroupId等信息,然后再填写其他的相关信息,这个工程命名DubboTest,是父项目。
  • 进入项目之后,选择新建模块,分别简历三个子项目,过程与上面类似。分别命名为DubboConsumer,DubboProvider,DubboCommon。有关POM文件内容请参考项目代码中的内容,这里不再贴出来。(主要是因为这粘贴太XX)。
  • 项目搭建完成之后,就可以开始写代码了。

首先在DubboCommon项目中编写公共的接口,代码如下:

package dubbo.common.hello.service;

/**
 * Created by cheng.xi on 15/4/12.
 */
public interface HelloService {
    public void sayHello();
}

接着写DubboProvider项目的接口实现,代码如下:

package dubbo.provider.hello.service.impl;

import dubbo.common.hello.service.HelloService;

/**
 * Created by cmcc on 15/4/12.
 */
public class HelloServiceImpl implements HelloService {
    @Override
    public void sayHello() {
        System.out.println("这里是Provider");
        System.out.println("HelloWorld Provider!");
    }
}

下面是DubboProvider中启动服务的代码:

package dubbo.provider.hello.main;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

/**
 * Created by cheng.xi on 15/4/12.
 */
public class StartProvider {
    public static void main(String[] args){
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo-provider.xml"});
        context.start();
        System.out.println("这里是dubbo-provider服务,按任意键退出");
        try {
            System.in.read();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

最后编写DubboConsumer下的调用代码,此处使用单元测试的方式调用,代码如下:

package dubbo.consumer.hello.main;

import dubbo.common.hello.service.HelloService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * Created by cheng.xi on 15/4/12.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/dubbo-consumer.xml")
public class StartConsumer {

    @Autowired
    private HelloService helloService;

    @Test
    public void test(){
        System.out.println("dubbo-consumer服务启动,调用!");
        helloService.sayHello();

    }
}

  • 上面代码已经写好,其中需要用的几个配置文件如下所示。
    dubbo-consumer.xml:




    
    

    


dubbo-provider.xml:




    
    
    

    
    



  • 至此项目中的代码编写已经完成,下一步是安装和启动zookeeper,有关过程请自己研究下。
  • 启动好了zookeeper之后,首先运行DubboProvider中的那个main方法,然后运行DubboConsumer中的test()方法。

你可能感兴趣的:(dubbo入门实例)