dubboDemo示例
dubbo入门示例,仅是个人日常学习。详情见:dubbo.io
直奔主题,只是简单入门,开发工具IDEA
工程结构:
com-dubbo为父级,pom.xml主要依赖,还有spring相关依赖
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <!-- dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
主要分为接口(dubbo-api),接口实现也称提供者(dubbo-provider),消费放(dubbo-consumer)
dubbo-api主要提供暴露给外部的接口,不需关注实现
pom.xml
<parent> <artifactId>com-dubbo</artifactId> <groupId>com.dubbo</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>dubbo-api</artifactId> <packaging>jar</packaging>
完成!
dubbo-provider需引入dubbo-api并提供接口实现类,并进行spring和dubbo的相关配置
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>com.dubbo</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
实现类:
启动demo类:
provider.xml
service 用来声明需要暴露的服务接口,这里暴露了com.dubbo.api.DemoService接口
ref 引用spring的bean demoService
protocol 指该应用用 dubbo 协议在 28080 端口暴露服务
application 指当前应用名称,主要用来给 zookeeper 注册中心计算应用间依赖关系,一般与应用名称相同
dubbo-consumer 客户端,用于调用服务
pom.xml 与 provider相同,需引入api模块
消费者启动类:
consumer.xml
个人理解:provider 暴露(interface)api接口,同时关联(ref)到 provider 的spring bean(demoService) ,consumer 引用(interface)api接口,同时 reference(IOC注入id bean,此名称与provider中 ref无关)
启动服务
先启动zookeepr:zkServer.cmd,在启动provider
启动zkCli.cmd,即可看到服务已经注册上去
启动consumer:
成功!完!