一.总共分为三个目录:

  • dubbo-api      服务的接口用于对接客户端和服务端 
  • dubbo-client     客户端配置文件为:consumer.xml
  • dubbo-service  服务端配置文件为:provide.xml  

二.配置文件

  1.consumer.xml:   

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://code.alibabatech.com/schema/dubbo
  8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
  9. <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
  10. <dubbo:application name="consumer" />
  11. <!-- zookeeper作为注册中心 -->
  12. <dubbo:registry protocol="zookeeper"
  13. address="zookeeper://10.92.1.17:2181" />
  14. <dubbo:protocol name="dubbo" port="" />
  15. <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
  16. <dubbo:reference
  17. interface="com.dubbo.api.rpc.TestService" id="testService"></dubbo:reference>
  18. </beans>

  2.provide.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://code.alibabatech.com/schema/dubbo
  8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
  9. <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
  10. <dubbo:application name="provider" />
  11. <!-- 使用zookeeper作为注册中心 -->
  12. <dubbo:registry protocol="zookeeper"
  13. address="zookeeper://10.92.1.17:2181" />
  14. <dubbo:protocol name="dubbo" port="" />
  15. <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
  16. <dubbo:service interface="com.dubbo.api.rpc.TestService"
  17. ref="testService"></dubbo:service>
  18. </beans>

  3pom文件:   

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>com.dubbo.api</groupId>
  7. <artifactId>dubbo-api</artifactId>
  8. <version>0.0.-SNAPSHOT</version>
  9. </dependency>
  10.  
  11. <dependency>
  12. <groupId>com.alibaba</groupId>
  13. <artifactId>dubbo</artifactId>
  14. <version>2.5.</version>
  15. <exclusions>
  16. <exclusion>
  17. <groupId>org.springframework</groupId>
  18. <artifactId>spring</artifactId>
  19. </exclusion>
  20. </exclusions>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.apache.zookeeper</groupId>
  24. <artifactId>zookeeper</artifactId>
  25. <version>3.4.</version>
  26. <exclusions>
  27. <exclusion>
  28. <groupId>org.slf4j</groupId>
  29. <artifactId>slf4j-log4j12</artifactId>
  30. </exclusion>
  31. <exclusion>
  32. <groupId>log4j</groupId>
  33. <artifactId>log4j</artifactId>
  34. </exclusion>
  35. </exclusions>
  36. </dependency>
  37. <dependency>
  38. <groupId>com.github.sgroschupf</groupId>
  39. <artifactId>zkclient</artifactId>
  40. <version>0.1</version>
  41. </dependency>

  4. 服务的接口

  1. /**
  2. * @Title: TestService.java
  3. * @Description:
  4. * @author lsc
  5. * @date 2018年8月17日
  6. * @version 1.0
  7. * @Copyright:Copyright Taikanglife.All Rights Reserved
  8. */
  9. package com.dubbo.api.rpc;
  10.  
  11. /**
  12. * @ClassName: TestService
  13. * @Description:
  14. * @author: lsc
  15. * @date: 2018年8月17日 上午10:03:28
  16. * @Copyright:Copyright Taikanglife.All Rights Reserved
  17. */
  18. public interface TestService {
  19.  
  20. public String sayHello();
  21. }

  5.服务的实现

  1. package com.dubbo.dubbo;
  2.  
  3. import org.springframework.stereotype.Service;
  4.  
  5. import com.dubbo.api.rpc.TestService;
  6.  
  7. /**
  8. * @ClassName: TestServiceImpl
  9. * @Description:
  10. * @author: lsc
  11. * @date: 2018年8月17日 上午10:24:11
  12. * @Copyright:Copyright Taikanglife.All Rights Reserved
  13. */
  14. @Service("testService")
  15. public class TestServiceImpl implements TestService {
  16. @Override
  17. public String sayHello() {
  18. return "hello dubbo";
  19. }
  20. }

  6.服务的调用

  1. package com.dubbo.dubboclient;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6.  
  7. import com.dubbo.api.rpc.TestService;
  8.  
  9. /**
  10. * @ClassName: MyController
  11. * @Description:
  12. * @author: lsc
  13. * @date: 2018年8月17日 上午10:24:56
  14. * @Copyright:Copyright Taikanglife.All Rights Reserved
  15. */
  16. @RestController
  17. public class MyController {
  18.  
  19. @Autowired
  20. private TestService testService;
  21.  
  22. @RequestMapping("/home")
  23. public String home(){
  24. return testService.sayHello();
  25. }
  26. }

  

dubbo+zookeeper下生产者和消费者配置(基于springboot开发)的更多相关文章

  1. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...

  2. Kafka学习笔记3--Kafka的生产者和消费者配置

    下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题及其生产.消费相关. server.properties--服务端配置 producer.properties--生产 ...

  3. 带着新人学springboot的应用12(springboot+Dubbo+Zookeeper 下)

    上半节已经下载好了Zookeeper,以及新建了两个应用provider和consumer,这一节我们就结合dubbo来测试一下分布式可不可以用. 现在就来简单用一下,注意:这里只是涉及最简单的部分, ...

  4. dubbo中拦截生产者或消费者服务方法调用

    比如当前有个需求,需要拦截dubbo的服务提供方或者服务消费方的方法,判断参数中是否包含某个关键字进行拦截阻止执行,那么我们可以通过使用dubbo的SPI机制通过实现Filter类来拦截,话不多说直接 ...

  5. Linux下生产者与消费者的线程实现

    代码见<现代操作系统> 第3版. 为了显示效果,添加了printf()函数来显示运行效果 #include<stdio.h> #include<pthread.h> ...

  6. TIMO后台管理系统-基于SpringBoot开发

    项目介绍 TIMO后台管理系统,基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后台管理系统,采用分模块的方式便于开发和维护,支持前后 ...

  7. 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...

  8. Dubbo+zookeeper实现单表的增删改查

    1.数据库准备 建表语句 CREATE TABLE `tb_brand` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL COMMENT ...

  9. 通过单元测试理解spring容器以及dubbo+zookeeper单元测试异常处理

    一.先说一个结论:单元测试与主项目的spring容器是隔离的,也就是说,单元测试无法访问主项目spring容器,需要自己加载spring容器. 接下来是代码实例,WEB主项目出于运行状态,单元测试中可 ...

随机推荐

  1. linux diff3-比较3个文件不同的地方

    推荐:更多Linux 文件查找和比较 命令关注:linux命令大全 diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出. 语法 diff3(选项)(参数) 选项 -a:把所有的文件都 ...

  2. 全面了解cookie和session

    http协议: http即超文本传输协议(万维网定义的),一种基于浏览器请求与服务器响应的链接,它是一个很纯粹的传输协议.http协议主要的特征就是它是一种无状态的协议(只针对cookie与sessi ...

  3. BZOJ 3648 寝室管理

    [题解] GDOI2016 Day2T3 如果给出的数据是一棵树那么皆大欢喜直接点分治就好了,用树状数组维护大于x的数的个数.如果是一棵基环树,我们先断掉环上的一条边,然后跑点分治:再加上经过这条边的 ...

  4. DESEncrypt对称加密解密

    分享一个很好用的DESEncrypt对称加密解密的类 using System; using System.Security.Cryptography; using System.Text; usin ...

  5. hdu 1185 状压dp 好题 (当前状态与上两行有关系)

    /* 状压dp 刚开始&写成&&看了好长时间T0T. 状态转移方程 dp[i][k][j]=Max(dp[i][k][j],dp[i-1][l][k]+num[i][j]);( ...

  6. [K/3Cloud]如何解决kdpkg无法部署到业务站点的问题

    自从下载了sp1后,就迫不急待的试用下,看看反馈的几个关键bug是否修复,可惜sp1安装后发现业务站点下的组件一个都没有被更新,这指定是有问题了,这真是让哥百思不得其解,真后悔在研发时没仔细研究下部署 ...

  7. codeforces gym 100357 H (DP 高精度)

    题目大意 有r*s张扑克牌,数字从1到 r,每种数字有s种颜色. 询问对于所有随机的d张牌,能选出c张组成顺子的概率和组成同花的概率. 解题分析 对于组成顺子的概率,令dp[i][j][k]表示一共选 ...

  8. CODEVS1022 覆盖 (二分图染色+匈牙利算法)

    先对整幅图进行二分图染色,再跑一遍匈牙利算法. /* CODEVS1022 */ #include <cstdio> #include <cstring> #include & ...

  9. spring boot jpa 事务管理

    spring boot 对jpa的支持极为方便,基本上不需要作太多配置,只需要加上注解就能支持事务: @Controller @Transactional(rollbackOn = Exception ...

  10. mac os随笔

    1.定义对象的成员变量的时候以便使用下划线开头:例如NSImage    *_image;   NSURL的一个函数: getResourceValue:forKey:error: Returns t ...