一.创建项目

  1.创建一个空的项目

  2.在空的项目中添加两个Spring Boot模块,如下图所示

    

二.在provider模块中的pom文件中添加依赖

        <dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--引入zookeeper的客户端工具-->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>

  注意,本人的Spring Boot是2.0以上版本的,导入的dubbo依赖是0.2.0。如果版本不对应,可能会启动失败

三.在配置文件中配置dubbo

  例如本人的配置如下(provider中的application.properties文件)

dubbo.application.name=provider
dubbo.registry.address=zookeeper://192.168.2.130:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.scan.basePackages=com.whzc.service.impl

  如果是consumer模块,则

dubbo.application.name=consumer
dubbo.registry.address=zookeeper://192.168.2.130:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

四.在provider模块中实现发布服务

  接口

package com.whzc.service;

public interface ArticleProviderService {
public String writeArticle(String name);
}

  实现类(注意注解不要引错了)

package com.whzc.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.whzc.service.ArticleProviderService;
import org.springframework.stereotype.Component; @Service
@Component
public class ArticleProviderServiceImpl implements ArticleProviderService {
@Override
public String writeArticle(String name) {
return "写了一篇文章"+ name;
}
}

  启动项目,启动成功后如下图所示 (有可能连接时间过长,或zookeeper未开启等各方面原因导致启动失败,可以多尝试几次)

  

  在linux中查看服务,在zookeeper的安装目录中,有一个bin目录,bin目录中有一个zkCli.sh,启动zkCli.sh,

./zkCli.sh

  如下图所示

  

  输入

ls /

  再输入

ls /dubbo

  可以查看已经发布的服务,例如本人的如下所示

  

  附:如果装有dubbo-admin,可以直接在dubbo-admin中查看,例如下图所示(网上直接找dubbo-admin的war包,放到tomcat中即可)

  

五.在consumer中获取到服务

  1.复制provider中的接口到consumer对应的包中(和provider中的接口的包名相同,都是com.whzc.service包中),这里不需要实现类了。

  2.创建一个消费者服务,例如(注意Service注解和Reference注解对应的包不要引错了)

package com.whzc.service;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service; @Service
public class ArticleConsumerService {
@Reference
ArticleProviderService articleProviderService; public void readArticle(){
String str = articleProviderService.writeArticle("文章111");
System.out.println("读了别人"+str);
}
}

  3.在测试类中测试

    @Autowired
ArticleConsumerService articleConsumerService; @Test
public void contextLoads() {
articleConsumerService.readArticle();
}

  4.发现成功获取到了provider发布的服务,如下图所示

  

  如果直接启动该consumer项目,则可以在dubbo-admin中看到如下图所示

  

最新文章

  1. java:同步和死锁
  2. notepad++的CoolFormat代码格式化插件使用
  3. CSS自适应布局(包括两边宽度固定中间宽度自适应与中间宽度固定两边宽度自适应)
  4. linux知识点总结与随笔(关注linux爱好者公众号的一些笔记)
  5. 初始tornado框架
  6. Windows.Andy.Code4App.dll Win8.1/WP8.1通用类库@ver1.0.0
  7. MyBatis总结-实现关联表查询
  8. Asp.net实现在线人数统计功能代码实例
  9. springMVC的拦截器工作流程
  10. [Lua]Mac系统上安装Lua环境
  11. 南阳理工oj_The Triangle
  12. DataTable复制数据,深度复制
  13. Welcome to Django!
  14. [BZOJ]1011 遥远的行星(HNOI2008)
  15. TypeError: can&#39;t compare offset-naive and offset-aware datetimes bugfix
  16. Mac解决某些命令失效问题
  17. Linux桌面系统常用软件和笔记(更新)
  18. centos密码策略
  19. python接口测试模版
  20. xml.sax 笔记

热门文章

  1. [Java]算术表达式求值之二(中序表达式转后序表达式方案,支持小数)
  2. python sqlalchemy 进行 mysql 数据库操作
  3. 如何查看MySQL connection id连接id
  4. struts数据回显
  5. View的事件机制
  6. Oracle 设置主键自增长
  7. (4)rapidxml的详解及使用
  8. koa express 优缺点
  9. Android adb.exe 开发模试安装
  10. delphi raise 语句: 抛出异常