Dubbo 是基于Java的开源的RPC的分布式服务框架,目前是 Apache 项目。

推荐使用 ZooKeeper 做注册中心,当然也可以支持 Redis, Multicast 和Simple。

Dubbo 服务之间调用默认是同步阻塞的,也支持异步调用,基于 NIO 的非阻塞实现并行调用。

负载均衡支持 Random,RoundRibbon,LeastActive和 ConsistenHash四种策略。

并且 Dubbo 可以使用 Pinpoint 和 Apache Skywalking(Incubator) 实现分布式服务追踪。

这里简单记录下如何创建服务提供者,消费者,并注册到ZooKeeper 注册中心,然后实现服务调用。这里的ZooKeeper 之前已经搭建了,使用Dubbo将zk作为注册中心时,端口号需要和zoo.cfg里写的一致,默认为clientPort=2181。

1、创建聚合项目

pom.xm 文件配置如下:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version>
</parent><groupId>com.demo</groupId>
<artifactId>dubbo</artifactId>
<version>1.0.0</version><properties><java.version>1.8</java.version>
</properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.1.10.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.10.RELEASE</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.2.0</version></dependency></dependencies>
</dependencyManagement>

2、新建 api 模块

pom文件配置:

<parent><artifactId>dubbo</artifactId><groupId>com.demo</groupId><version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion><artifactId>api</artifactId>

新建一个服务接口:

public interface DubboService {public String test(String param);}

3、新建服务提供者模块

pom文件设置:

<parent><groupId>com.demo</groupId><artifactId>dubbo</artifactId><version>1.0.0</version>
</parent><groupId>com.demo.dubbo</groupId>
<artifactId>provider</artifactId>
<version>1.0.0</version><properties><java.version>1.8</java.version>
</properties><dependencies><dependency><artifactId>api</artifactId><groupId>com.demo</groupId><version>1.0.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency>
</dependencies>

代码目录结构:

DubboServiceImpl:

package com.demo.dubbo.provider.service.impl;import com.demo.dubbo.service.DubboService;
import org.apache.dubbo.config.annotation.Service;@Service
public class DubboServiceImpl implements DubboService {@Overridepublic String test(String param) {System.out.println("test");return param + " disply";}
}

启动类:

@SpringBootApplication
@EnableDubbo
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}}

application.yml配置文件:

dubbo:application:name: dubbo-providerregistry:address: zookeeper://192.168.216.128:2181protocol:port: 10080

4、新建服务消费者模块

pom文件配置:

<parent><artifactId>dubbo</artifactId><groupId>com.demo</groupId><version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion><artifactId>consumer</artifactId><dependencies><dependency><artifactId>api</artifactId><groupId>com.demo</groupId><version>1.0.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency>
</dependencies>

代码目录结构:

启动类:

@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}

Controller:

@RestController
public class DemoController {@Autowiredprivate DemoService demoService;@RequestMapping("demo")public String demo() {return demoService.test();}
}

Service实现类:

package com.demo.dubbo.service.impl;import com.demo.dubbo.service.DemoService;
import com.demo.dubbo.service.DubboService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;@Service
public class DemoServiceImpl implements DemoService {@Referenceprivate DubboService dubboService;@Overridepublic String test() {return dubboService.test("dubbo demo test");}
}

5、启动服务提供者和消费者两个服务

6、测试接口地址如果可以正常访问,说明服务调用成功。

http://localhost:8080/demo

Dubbo 集成 ZooKeeper 注册中心实现服务调用相关推荐

  1. springboot+dubbo+mybatis(注册中心使用的是zookeeper)学习

    1.dubbo简单介绍(废话节点) Dubbo开始于电商系统,是一款分布式服务框架,拥有高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案.她每天为2千多个服务提供大于30亿次访问量支持,并 ...

  2. Dubbo学习笔记001---分布式服务调用_Dubbo简介_依赖zookeeper做为注册中心进行服务注册与发现

    JAVA技术交流QQ群:170933152 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员 ...

  3. 淘宝SOA框架dubbo学习(2)--搭建Zookeeper注册中心服务

    2019独角兽企业重金招聘Python工程师标准>>> 继上一篇博文, 淘宝SOA框架dubbo学习(1) http://my.oschina.net/hanshubo/blog/3 ...

  4. (十二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - zookeeper注册中心安装

    今天我们来学习基于zookeeper注册中心的安装. 注册中心 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子 ...

  5. 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比

    一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...

  6. Dubbo使用multicast广播注册中心暴露服务地址时启动报错empty notify

    2019独角兽企业重金招聘Python工程师标准>>> 开发机上Dubbo使用multicast广播注册中心暴露服务地址 <dubbo:registry protocol=&q ...

  7. 后台服务系统之搭建ZooKeeper注册中心

    dubbo支持多种注册中心,推荐使用ZooKeeper. http://dubbo.apache.org/zh-cn/docs/user/references/registry/zookeeper.h ...

  8. linux 查看zookeeper目录,查看zookeeper注册中心是否有注册服务

    查看zookeeper注册中心是否有注册服务可以在服务器上看,也可以在dubboadmin看哦~ 1.在服务器上看: 1)查找zookeeper的目录: find / -name zookeeper ...

  9. 3.spring cloud + zookeeper注册中心 + Feign调用案例

    3.spring cloud + zookeeper注册中心 + Feign调用案例 3.1.pom.xml定义 <?xml version="1.0" encoding=& ...

最新文章

  1. [NHibernate]基本配置与测试
  2. 对云计算的忽视是 银行的战略失误
  3. MetaSploit攻击实例讲解------攻击445端口漏洞(kali linux 2016.2(rolling))(详细)
  4. HTTP概念详解与案例测试
  5. 覆盖所有面试知识点,持续更新中
  6. wxpython富文本_去除富文本编辑器中的标签
  7. Unsupported major.minor version 51.0 jdk版本错误解决方案 eclipse版
  8. 关于.net ashx一般处理文件中取不到session问题
  9. texstudio 使用方法_TeXstudio怎么使用,TeXstudio使用教程解析
  10. FuisonInsight Hadoop中新增用户和Hbase授权
  11. Windows98 win98.bif 文件
  12. 驱动精灵、人生限速曲线救国
  13. sql注入工具--Sqlmap
  14. html 保存 文字变乱码怎么办,html文字为什么会乱码
  15. datasupport类删除_reiserfs文件系统反删除(Undelete)数据恢复操作的实践
  16. 【阅读笔记】Federated Learning for Privacy-Preserving AI
  17. 中国无线物联网传感器市场现状研究分析与发展前景预测报告(2022)
  18. 洗牌算法具体指的是什么
  19. 揭秘开心农场开发团队:初期仅15万元创业基金
  20. 如何配置本地yum源

热门文章

  1. HashMap put原理详解(基于jdk1.8)
  2. dij算法堆优化_BZOJ 3040 最短路(road) 堆优化Dijkstra | 学步园
  3. IOS应用程序发布到苹果APP STORE完整流程使用教程
  4. OpenGL ES入门详解
  5. 如何把测试库的统计信息导入到生产库
  6. 应用程序如何链接静态QT Plugin库
  7. 用python重构策略模式
  8. photoshop CG6 基础知识的学习
  9. 服务器搭建2 VSFTP搭建FTP服务器
  10. 淘宝的生态灾难,谁来救赎?