深入学习 DUBBO

1、什么是 RPC 协议?

RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。

参考资料:

深入浅出 RPC - 浅出篇 - 瞬息之间- 博客频道 - CSDN.NET

2、为什么要使用 RPC 协议?

1. 简单:RPC 概念的语义十分清晰和简单,这样建立分布式计算就更容易。

2. 高效:过程调用看起来十分简单而且高效。

3. 通用:在单机计算中过程往往是不同算法部分间最重要的通信机制。

通俗一点说,就是一般程序员对于本地的过程调用很熟悉,那么我们把 RPC 作成和本地调用完全类似,那么就更容易被接受,使用起来毫无障碍。

2、常见的 RPC 框架有哪些,它们都有什么特点?

3、RPC 框架的调用原理?

实现 RPC 的程序一般包括 5 个部分:User、User-Stub、RPCRunTime、Server-Stub、Server。

这里 user 就是 client 端,当 user 想发起一个远程调用时,它实际是通过本地调用 user-stub。user-stub 负责将调用的接口、方法和参数通过约定的协议规范进行编码并通过本地的 RPCRuntime 实例传输到远端的实例。远端 RPCRuntime 实例收到请求后交给 server-stub 进行解码后发起本地端调用,调用结果再返回给 user 端。

4、如何选择合适的 RPC 框架?

目前市面上提供的 RPC 框架已经可算是五花八门,百家争鸣了。需要根据实际使用场景谨慎选型,需要考虑的选型因素我觉得至少包括下面几点:

1. 性能指标

2. 是否需要跨语言平台

3. 内网开放还是公网开放

4. 开源 RPC 框架本身的质量、社区活跃度

1、什么是 DUBBO?

3、DUBBO 与其他 RPC 框架的区别,它有什么优势?

4、DUBBO 框架的整体架构?

5、DUBBO 服务的负载均衡策略?

6、DUBBO 的调用失败策略?

时间: 2024-12-18 03:18:17

深入学习 DUBBO的相关文章

学习dubbo(四): 启动时检查

说明 Dubbo缺省会在启动时检查依赖的服务是否可用不可用时会抛出异常阻止Spring初始化完成以便上线时能及早发现问 题默认check=true. 注意 如果你的Spring容器是懒加载的或者通过API编程延迟引用服务请关闭check否则服务临时不可用时会抛出异常拿到 null引用如果check=false总是会返回引用当服务恢复时能自动连上.

菜鸟学习Dubbo

一.什么是dubbo? 随着互联网的不断发展,网站的应用规模越来越大,常规的垂直架构已经无法应对,尤其是类似电商的项目,所以分布式架构和流动计算架构已经势在必行. ① 单一应用架构 当网站很小时,只需要一个项目就可以将所有功能部署到一起,减少部署成本.    此时用于简化增删改查工作量的数据访问框架(ORM)是关键. ② 垂直应用架构 当访问量增大时,单一应用增加机器所带来的加速越来越小,此时应当拆分单个项目为互不相干的多个应用,提升效率. 此时,加速前端页面开发的web框架(MVC)是关键.

学习dubbo(六):部署dubbo服务

1.上传jar至服务器 将打包好的jar包上传,我这上传到/edu/service/user 2.使用java命令启动     java -jar edu-service-user.jar & 3.查看管控台 如上,OK启动成功了 自定义dubbo服务维护的shell脚本 脚本命名规范:/edu/service/xxx/service-xxx.sh 脚本命名,如:/edu/service/user/service-user.sh 效果: cd /edu/service/user ./servic

学习dubbo(一): 简介

Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架.作为一个重要的技术研究课题,当当网根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox Dubbo是什么? Dubbo是一个分布式服务服务框架,致力于提高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 简单的说,dubbo就是一个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才用dubbo这样的分布式服务框架的需求,

学习dubbo遇到的问题1

com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method Please check 大概就是让重新注册 出现这个问题就是路径不一致导致的,需要接口类和实现类路径按照标准建设. 切记 不是扫包的问题  鼓捣一下午 醉了... https://dubbo.gitbooks.io/dubbo-dev-book/coding.html

学习dubbo(二): 第1个例子

提供者 接口 public interface SampleService { String sayHello(String name); public List getUsers(); } 接口实现 public class SampleServiceImpl implements SampleService { public String sayHello(String name) { return "Hello " + name; } public List getUsers()

学习dubbo(8):消息中间件activemq -简介

消息中间定义 消息中间件是在分布式系统中完成消息的发送和接收的基础软件 消息中间件的作用 消息中间件可利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成 .通过提供消息传递 和消息排队模型,可以在分布式环境下扩展进程间的通信. 通过 消息中间件,应用程序或组件之间可以进行可靠的异步通讯,从而降低系统之间的耦合度,提高系统的可扩展性和可用性 应用场景 通过使用消息中间件对Dubbo服务间的调用进行解耦 JMS消息模型 1.点对点或队列模型 JMS 点对点队列模型

学习dubbo(五):使用maven构建dubbo服务的可执行的jar

Dubbo服务的运行方式 1.使用Servlet容器运行(Tomcat) ----- 不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存) 2.自建Main方法类来运行(Spring容器) -----不建议(本地调试可用) 缺点:Dubbo本身提供的高级特性没用上 自己编写启动类可能会有缺陷 3.使用Dubbo框架提供的Main方法类来运行(Spring容器) -----建议使用 优点:框架本身提供(com.alibaba.dubbo.container.Main) 可实现优雅关机(Shut

学习dubbo(三): dubbo的管控台

第1步:将dubbo-admin-xxx.war放到ZK所在服务器上 第2步:将dubbo-admin-xxx.war解压到tomcat下的dubbo-admin下 进入到dubbo-admin下的WEB-INF下 修改dubbo.properties文件             #主机ip             dubbo.registry.address=zookeeper://192.168.91.3:2181             #用户名与密码             dubbo.

1.学习dubbo

1.安装虚拟机 http://www.cnblogs.com/yun965861480/p/6246396.html2.配置网络 http://www.cnblogs.com/yun965861480/p/6246451.html3.安装jdk http://www.cnblogs.com/yun965861480/p/6246460.html4.安装zookeeper http://www.cnblogs.com/yun965861480/p/6257613.html5.zookeeper+d