Dubbo入门
# 1 什么是 Dubbo
Apache Dubbo 是一款高性能的 Java RPC 框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开 源 Java RPC 框架,可以和 Spring 框架无缝集成。
提供了三大核心能力:
- 面向接口的远程方法调用;
- 可靠、智能的容错和负载均衡;
- 服务自动注册和发现能力。
# 2. Dubbo 处理流程
# 节点角色说明
节点 | 角色说明 |
---|---|
Provider | 暴露服务的服务提供方 |
Consumer | 调用远程服务的服务消费方 |
Registry | 服务注册与发现的注册中心 |
Monitor | 统计服务的调用次数和调用时间的监控中心 |
Container | 服务运行容器 |
# 调用关系说明
虚线: 代表异步调用
实线:代表同步访问
蓝色虚线: 是在启动时完成的功能
红色虚线: 是程序运行中执行的功能
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
# 3. ZooKeeper 注册中心搭建
dubbo 启动还需要依赖注册中心,这里我们使用 ZooKeeper。为了方便,我们在这里只是启动最简单的单实例 ZK。
ZooKeeper 安装参考【ZooKeeper】集群安装与配置 (opens new window)
# 4.官方 Demo
下载地址 https://github.com/apache/dubbo-samples (opens new window)
Dubbo 为我们提供了三种非常基础的示例程序,在 dubbo-demo 模块下。
. // apache/dubbo-samples/1-basic/dubbo-samples-spring-boot
├── dubbo-samples-spring-boot-interface // 共享 API 模块
├── dubbo-samples-spring-boot-consumer // 消费端模块
└── dubbo-samples-spring-boot-provider // 服务端模块
1
2
3
4
2
3
4
如上所示,共有 3 个模块,其中 interface
模块被 consumer
和 provider
两个模块共同依赖,存储 RPC 通信使用的 API 接口。
# 5. 官网
更多教程参考官网,官网教程已经很详细了 [https://cn.dubbo.apache.org/zh-cn/]
编辑 (opens new window)
上次更新: 2024/04/19, 08:52:45
- 01
- idea 热部署插件 JRebel 安装及破解,不生效问题解决04-10
- 02
- spark中代码的执行位置(Driver or Executer)12-12
- 03
- 大数据技术之 SparkStreaming12-12