1、什么是 Dubbo
1.1、Dubbo 的简介
Dubbo( 开源分布式服务框架 ) 是阿里巴巴公司开源的一个高性能优秀的服务框架使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring 框架无缝集成。后期可能是阿里有了更好的解决方案,就停止了该项目的维护,当当网便在 Dubbo 基础上进行 优化,并继续维护,为了与原有的 Dubbo 区分,故将其命名为 Dubbox 。所以 Dubbo 和 Dubbox 在使用上大致相同。我们一起继续分析。
1.2、原理分析
首先我们来看下 Dubbo 的工作原理图
接着我们来分析下图中的节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统 计数据到监控中心
2、实现步骤
NO.1 安装 Zookeeper
上述原理分析中,我们提到一个非常重要的概念,即为 Registry( 服务注册于发现的注册中心 ) 。官方建议我们使用 zookeeper 注册中心,。注册中心负
责服务地址的注册与查找,相当于目录 服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。 此处将 Zookeeper
在 Linux 系统的安装 , 安装过程如下:
1. 安装 JDK, 并配置环境变量 , 配置成功后输入 java -version 会显示 JDK 的版本号
2. 安装 Zookeeper, 并进行配置,配置成功后进入 bin 目录下,输入 ./zkServer.sh start 启动
3. 查看 Zookeeper 的启动状态,输入
NO.2 编写服务端代码
1. 导入对应的 jar 包
(1) 导入 Spring 相关 jar 包
(2) 导入 dubbo 相关 jar 包
2. 编写服务接口类
3. 编写服务接口实现类
4. 编写模型类
5. 配置 web.xml
6. 配置 applicationContext.xml
7. 启动服务即可完成服务器的部署功能
NO.3 编写客户端代码
1. 导入对应的 jar 包
(1) 导入 Spring 相关 jar 包
(2) 导入 dubbo 相关 jar 包
2. 编写服务接口类
3. 编写模型类
4. 配置 web.xml
5. 配置 applicationContext.xml
6. 在需要调用服务的类中使用 @@Reference
7. 运行程序即可获取服务端提供的数据结果
3、结论
通过上述简单的案例,我们可以通过 dubbo 来实现从服务端到客户端的一个数据传递,但是对于 dubbo 来说,功能比较强大的地方在于服务器分布式和集群的搭建,在这个简单案例的基础上,大家可以在进行更全面的学习
1.1、Dubbo 的简介
Dubbo( 开源分布式服务框架 ) 是阿里巴巴公司开源的一个高性能优秀的服务框架使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring 框架无缝集成。后期可能是阿里有了更好的解决方案,就停止了该项目的维护,当当网便在 Dubbo 基础上进行 优化,并继续维护,为了与原有的 Dubbo 区分,故将其命名为 Dubbox 。所以 Dubbo 和 Dubbox 在使用上大致相同。我们一起继续分析。
1.2、原理分析
首先我们来看下 Dubbo 的工作原理图
接着我们来分析下图中的节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统 计数据到监控中心
2、实现步骤
NO.1 安装 Zookeeper
上述原理分析中,我们提到一个非常重要的概念,即为 Registry( 服务注册于发现的注册中心 ) 。官方建议我们使用 zookeeper 注册中心,。注册中心负
责服务地址的注册与查找,相当于目录 服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。 此处将 Zookeeper
在 Linux 系统的安装 , 安装过程如下:
1. 安装 JDK, 并配置环境变量 , 配置成功后输入 java -version 会显示 JDK 的版本号
2. 安装 Zookeeper, 并进行配置,配置成功后进入 bin 目录下,输入 ./zkServer.sh start 启动
3. 查看 Zookeeper 的启动状态,输入
NO.2 编写服务端代码
1. 导入对应的 jar 包
(1) 导入 Spring 相关 jar 包
(2) 导入 dubbo 相关 jar 包
2. 编写服务接口类
3. 编写服务接口实现类
4. 编写模型类
5. 配置 web.xml
6. 配置 applicationContext.xml
7. 启动服务即可完成服务器的部署功能
NO.3 编写客户端代码
1. 导入对应的 jar 包
(1) 导入 Spring 相关 jar 包
(2) 导入 dubbo 相关 jar 包
2. 编写服务接口类
3. 编写模型类
4. 配置 web.xml
5. 配置 applicationContext.xml
6. 在需要调用服务的类中使用 @@Reference
7. 运行程序即可获取服务端提供的数据结果
3、结论
通过上述简单的案例,我们可以通过 dubbo 来实现从服务端到客户端的一个数据传递,但是对于 dubbo 来说,功能比较强大的地方在于服务器分布式和集群的搭建,在这个简单案例的基础上,大家可以在进行更全面的学习