Dubbo入门练习demo(IDEA版)

Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。

因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。

使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。

一、创建基本结构

1、创建maven项目,命名 dubbodemo。

2、创建子模块 api(公共接口)、consumer(服务消费者)、provider(服务提供者)。

Dubbo入门练习demo(IDEA版)_第1张图片

、添加依赖

1、在 dubbodemo 的 pom.xml 中添加 dubbo 和 zookeeper 客户端依赖。


    
    
        com.alibaba
        dubbo
        2.6.0
    
    
    
        com.101tec
        zkclient
        0.10
    


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.7.0
            
                1.8
                1.8
                utf-8
            
        
    

 三、定义接口

1、写接口

api 项目为其他两个项目提供接口,保证服务生产者和服务消费者使用的接口统一,我们在 api 项目中创建包com.myx.demo.dubbo.api,并创建接口DemoService。

Dubbo入门练习demo(IDEA版)_第2张图片

2、引用接口
在服务生产者和服务消费者项目中引用接口,保证两端接口一致。分别在两个项目的 pom.xml 中添加如下代码:


    
        
        
            com.myx
            api
            1.0-SNAPSHOT
            compile
        
    

3、其他依赖

紧急情况下可能需要直接手动调用接口,而生产环境只有服务提供者,消费者暂时不方便操作时,可通过telnet进行触发。

服务提供方引入fastjson依赖:


	com.alibaba
	fastjson
	1.2.51

四、添加实现类以及XML配置

1、在服务提供者包中添加实现类

Dubbo入门练习demo(IDEA版)_第3张图片2、服务提供者配置

将实现类注册到注册中心(只有这样,其他应用才有可能请求到),在 服务提供者包中 src / main / resources 下创建 dubbo-provider.xml 文件,用于配置dubbo服务端注册,代码如下:




    
    

    
    

    
    

    
    
    

3、服务消费者配置

添加服务消费者包中配置文件 dubbo-consumer.xml 放于 src / main / resources 下,内容与服务端相似,只不过不需要暴露接口,而是引用接口,代码如下: 




    
    

    
    

    
    

 

五、注册中心

因为要对服务进行注册,所以需要添加注册中心。此处添加注册中心zookeeper,官网下载 zookeeper 后解压,将conf文件夹下的 zoo_sample.cfg 重命名为 zoo.cfg,之后在命令提示符下切换至bin目录下,执行 .\zkServer.cmd。

Dubbo入门练习demo(IDEA版)_第4张图片

看到如下提示后表示启动成功:

2019-10-01 23:12:59,007 [myid:] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

六、 测试

1、按照上述要求启动 zookeeper

2、启动服务端

在服务端下添加 Provider.java 

Dubbo入门练习demo(IDEA版)_第5张图片

 

3、客户端测试

在 src / main / java 下创建包 com.myx.demo.dubbo.api,并创建文件 consumer.java,main 方法代码如下: 

Dubbo入门练习demo(IDEA版)_第6张图片

4、结果显示

执行后在控制台查看结果,如下所示,用户名后成功添加字符串,表示服务提供者和服务消费者都测试成功。

Dubbo入门练习demo(IDEA版)_第7张图片

参考文章:https://www.jianshu.com/p/b492ef5d4b98

代码:https://github.com/MiaoPlus/dubbodemo.git

你可能感兴趣的:(Dubbo)