### Dubbo学习手册知识点概述 #### 一、背景与简介 **电商系统演变历程:** 1. **单一应用框架(ORM)阶段:** - **特点:** 将所有功能如下单、支付等功能部署在一起,简化数据库操作。 - **问题:** 随着业务增长,单一系统难以扩展,维护成本高。 2. **垂直应用框架(MVC)阶段:** - **特点:** 将应用拆分成多个相互独立的应用,每个应用负责一部分业务。 - **问题:** 相同逻辑代码的重复性高,无法复用。 3. **分布式应用架构(RPC)阶段:** - **特点:** 将核心业务抽离成独立服务,便于业务复用和扩展。 - **关键:** 分布式服务框架RPC是此阶段的核心技术之一。 **RPC概念解释:** - **定义:** 远程过程调用,允许一个程序调用另一个位于不同地址空间(通常是在另一台主机上)的程序,而无需程序员显式编写网络代码细节。 - **工作原理:** - 客户端发送请求到服务端。 - 服务端处理请求并返回结果。 - 客户端接收结果并继续执行。 #### 二、Dubbo概述 **1. Dubbo架构:** - **总体架构:** - **核心组件:** 包括服务提供者、服务消费者、注册中心等。 - **流程:** 服务提供者将服务注册到注册中心;服务消费者从注册中心获取服务列表,并发起RPC调用。 - **服务调用流程:** - **注册与发现:** 服务提供者启动后向注册中心注册服务,服务消费者启动后向注册中心订阅服务。 - **负载均衡与集群容错:** 服务调用时会根据一定的策略进行负载均衡,并处理调用失败的情况。 **2. 特性:** - **连通性:** 支持多种网络协议,确保服务间的可靠通信。 - **健状性:** 具备良好的容错机制,如超时重试、断路器等。 - **伸缩性:** 可以方便地添加或移除服务实例,适应负载变化。 - **升级性:** 支持平滑升级,不影响在线服务。 **3. 调用方式:** - **异步调用:** 服务调用时不阻塞当前线程,适用于高并发场景。 - **本地调用:** 在同一进程中直接调用,提高性能但减少了分布式系统的灵活性。 **4. 注册中心:** - **作用:** 管理服务提供者和服务消费者的元数据,提供服务发现功能。 - **支持类型:** Zookeeper、Consul等。 **5. 支持的远程通信协议:** - **常用协议:** 如HTTP、TCP等。 - **选择依据:** 根据实际需求选择合适的协议,考虑性能、安全性等因素。 **6. 支持的远程调用协议:** - **Dubbo自身的RPC协议:** 高效、可靠,专为微服务设计。 - **兼容其他协议:** 如HTTP/REST等,增强灵活性。 **7. 优缺点:** - **优点:** - 高性能、易用性好。 - 提供完善的API文档和社区支持。 - 支持多种负载均衡算法和服务容错机制。 - **缺点:** - 学习曲线较陡峭。 - 对于非Java环境的支持相对有限。 - 配置较为复杂。 #### 三、源代码说明 **1. 源代码结构:** - **整体结构:** 分为内核层、扩展层、示例层等。 - **核心模块:** 包括服务注册与发现、服务调用与路由、服务治理等。 **2. 内核实现之SPI简单介绍:** - **SPI机制:** Service Provider Interface,用于动态加载服务实现类。 - **作用:** 提高系统的可扩展性和灵活性。 - **应用场景:** 在Dubbo中广泛应用于配置加载、插件扩展等方面。 #### 四、Dubbo入门Demo **1. Zookeeper介绍与安装:** - **Zookeeper简介:** 分布式协调服务,常用于配置管理、服务发现等。 - **安装步骤:** 下载、解压、配置环境变量等。 **2. 创建MAVEN项目:** - **dubbo-provider服务者项目:** - 创建Maven项目,添加Dubbo依赖。 - 编写服务接口及实现类。 - 配置application.xml,启动服务。 - **dubbo-consumer消费者项目:** - 创建Maven项目,添加Dubbo依赖。 - 引入服务接口。 - 配置application.xml,调用服务。 **3. 测试:** - **测试步骤:** 启动Zookeeper,运行服务者项目,最后运行消费者项目进行调用。 #### 五、Dubbo进阶 **1. 集群容错和负载均衡:** - **集群容错:** - 实现机制:如失败重试、失败忽略、失败转移等。 - 选择依据:根据服务调用失败时的处理策略决定。 - **负载均衡:** - 实现机制:随机、轮询、最少活跃调用数等。 - 选择依据:根据服务实例的负载情况和调用性能决定。 **2. Dubbo服务集群容错实践:** - **具体实践案例:** 介绍如何配置和服务调用相关的容错策略。 - **注意事项:** 如避免“雪崩效应”、合理设置超时时间等。 **3. Dubbo管理控制台介绍:** - **功能介绍:** 监控服务状态、查看服务调用日志、管理服务配置等。 - **使用方法:** 登录控制台,进行相应操作。 通过以上知识点的梳理,读者可以对Dubbo有一个全面的理解,并能够根据自己的项目需求灵活运用。
剩余56页未读,继续阅读
- 粉丝: 1
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl.zip
- lazy_object_proxy-1.7.1-cp39-cp39-win32.whl.zip
- lazy_object_proxy-1.7.1-cp38-cp38-win32.whl.zip
- leidenalg-0.7.0-cp27-cp27m-win_amd64.whl.zip
- lazy_object_proxy-1.7.1-cp310-cp310-win32.whl.zip
- lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl.zip
- leidenalg-0.7.0-cp27-cp27m-win32.whl.zip
- leidenalg-0.7.0-cp35-cp35m-win_amd64.whl.zip
- leidenalg-0.7.0-cp35-cp35m-win32.whl.zip
- leidenalg-0.7.0-cp36-cp36m-win_amd64.whl.zip
- leidenalg-0.7.0-cp36-cp36m-win32.whl.zip
- leidenalg-0.7.0-cp37-cp37m-win_amd64.whl.zip
- leidenalg-0.7.0-cp37-cp37m-win32.whl.zip
- leidenalg-0.8.3-cp36-cp36m-win_amd64.whl.zip
- leidenalg-0.8.3-cp36-cp36m-win32.whl.zip
- leidenalg-0.8.10-cp38-cp38-win_amd64.whl.zip