原文链接:http://blog.csdn.net/zhaozhenzuo/article/details/44781877
dubbo是一个服务治理框架。用于解决服务之间的依赖及调用问题,也是一种rpc实现。
dubbo中,有三个重要角色,一:注册中心,二:服务提供方,三:服务调用者。
一. 注册中心,可以是zookeeper,redis等,其实就是存放一个服务列表的地方。
推荐使用zookeeper,zookeeper用树状结构来进行存储。如图:
zookeeper存储的根结点是对应 <dubbo:register group="dubbo"/>中的group属性。
二.服务提供方
服务提供方连接上zookeeper并将服务注册到zookeeper上。
三.服务消费者
服务消费者会从zookeeper上拿到一份服务列表,并存储在本地文件中。这里如果一台机子部署多个服务的话,即多个jvm进程,这时有可能会发生这个本地文件发生竞争,而抛出异常。但dubbo对于这块异常是会重试的,所以不用担心。
dubbo的整个设计围绕着这三个角色进行。
对应这三个角色的配置标签分别有:<dubbo:register.../> ,<dubbo:provider.../>,<dubbbo:consumer.../>
在生产运用中,可以设置的参数有超时timeout,重试次数retries,负载均衡算法loadbanlance,容错方式failover等。
对于有些插入这种,非幂等操作,需要注意dubbo的超时重试机制。可以将其设置为0。
在protocal协议的选择上(即选择哪种协议用于实现远程调用)目前有dubbo,rmi,http等。
dubbo是默认推荐的方式,使用长连接,nio的形式。实现上就是服务消费方与服务提供方及注册中心之间使用长连接。
使用默认dubbo协议的话,序列化使用的是修改过的hessian协议,这是一种高效的二进制与具体语言无关的协议。而服务提供者端与服务消费者端使用的是mina nio框架。
而dubbo唯一确认一个服务的是:接口interface+版本号version+分组号group。
因此当业务升级接口时,如果服务调用方不兼容新的服务提供方接口时,这时可以采用version版本控制。
而在设计服务接口时,需要以一个功能为一个接口暴露给调用方。如果这个功能被分成三个接口给调用方,而这个功能必须是原子性的,即要么同时成功,要么同时失败,这里就比较麻烦了,需要引入分布式事务或其它方式解决。
对于性能优化上,如果某个业务需要同时查询多个服务,之后将根据这些服务的数据返回结果再做处理的话,可以用async来实现异步调用请求,加速业务处理。
相关推荐
【Dubbo学习笔记】 Dubbo是一款高性能、轻量级的Java RPC框架,它旨在提供面向接口的远程方法调用、智能容错与负载均衡、服务自动注册与发现等核心功能,帮助开发者构建分布式服务架构。以下是对Dubbo基础知识、...
dubbo学习笔记.doc
【Dubbo学习笔记】 本文将深入探讨Dubbo框架的核心概念及其在实际应用中的工作原理,同时结合SpringBoot和SpringCloud的整合,以及RPC(Remote Procedure Call)技术的基础知识。 一、RPC原理 RPC(远程过程调用)...
本文适合但不限于软件开发人员阅读。本文档能够使阅读者对dubbo的整体架构和原理有一个宏观且全面的了解,内容主要对dubbo的发展历史、架构组成、工作原理、应用场景等进行了介绍。
《Dubbo学习笔记详解》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,已经在Java开发者中广受欢迎。它主要应用于分布式系统中的服务调用,提供服务注册、服务发现、负载均衡、容错处理等核心功能,...
【Dubbo学习详解】 Dubbo,一款由阿里巴巴开源的高性能Java RPC框架,是服务治理的典型代表,广泛应用于分布式系统中。本资源包包含了几个关键的学习示例,旨在帮助开发者深入理解并掌握Dubbo的核心概念和技术。 1...
Dubbo之《尚硅谷》学习笔记
这是自己在dubbo学习过程中资料的整理 , 算是一个大纲 , 能够帮助到你快速入门 , 快速理解并且使用 , 大概半个小时就可以学会了 .
dubbo服务监控中心 localhost:9090 访问 Maven+Spring+Dubbo学习笔记博客地址 http://blog.csdn.net/a_piaoyouareminemine/article/details/50010577
《MyDubbo:Dubbo源码学习笔记》 在Java开发领域,Dubbo是一个非常知名的分布式服务框架,它由阿里巴巴开源并广泛应用于大型企业系统。本篇笔记将深入探讨Dubbo的核心概念、工作原理以及源码解析,帮助开发者更好地...
【Dubbo视频资料】尚硅谷教程是一套全面且深入的分布式服务框架Dubbo的学习资源,旨在帮助开发者理解和掌握这一强大的Java开源项目。Dubbo由阿里巴巴公司开发,它是一款高性能、轻量级的服务治理框架,主要应用于...
【描述】"dubbo+zookeeper入门资源,可直接使用,适合新手练习使用"意味着这个压缩包包含了学习和实践这两个技术的基础材料。通过这个资源,初学者可以了解如何配置和使用Dubbo与Zookeeper来实现服务间的通信和管理...
此文档是从学习 dubbo 源码过程中的笔记中整理出来的,由于时间及能力 原因,理解有误之处还请谅解,希望对大家学习使用 dubbo 有所帮助。 dubbo 是阿里基于开源思想 java 实现的服务治理中间件, 目前除了阿里之 外...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它主要专注于服务的注册与发现、调用、负载均衡、容错以及监控...通过学习和掌握Dubbo,开发者可以更好地理解和实践服务化,提升系统的整体性能和稳定性。
"最新dubbo视频教程.txt"可能是课程大纲或者笔记,包含了每个章节的重点和案例,方便学习者按照步骤进行实践。通过这个文本文件,你可以更清晰地了解整个教程的结构和内容。 总的来说,这个教程不仅涵盖了Dubbo的...
通过这个教程,我们可以学习到如何搭建Dubbo服务提供者和消费者,以及如何利用Zookeeper实现服务的注册和发现。 【知识点详解】: 1. **Dubbo框架**:Dubbo是阿里巴巴开源的分布式服务框架,它提供了服务发布、...
这表明本段内容涉及了Dubbo配置模块的学习笔记,强调了在学习过程中记录和理解配置模块的必要性。 标签“dubbo config 学习”表明了主题是关于学习Dubbo的配置模块,强调了学习性质和配置模块的关联。 在提供的...
【课件】则包含了课程的详细讲义和笔记,是学习过程中重要的参考材料。它们通常涵盖了关键知识点的梳理、案例分析和实践指导,有助于巩固课堂所学,并为自主复习提供便利。 【源码】的提供让学习者有机会亲手实践,...