首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day37】 — Dubbo篇(一)

Java高频面试题- 每日三连问?【Day37】 — Dubbo篇(一)

作者头像
浩说编程
发布2022-04-12 14:24:35
2390
发布2022-04-12 14:24:35
举报
文章被收录于专栏:Java经验之谈Java经验之谈

问题导读

一、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

二、服务提供者能实现失效踢出是什么原理?

三、RPC 架构有哪些组件?

01

Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

正经回答:

dubbo:

单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。

传输协议 TCP,异步, Hessian 序列化;

rmi:

采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现 Serializable接口,

使用 java 标准序列化机制,使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传输协议 TCP。

多个短连接, TCP 协议传输,同步传输,适用常规的远程服务调用和 rmi 互操作。

在依赖低版本的 Common-Collections 包,java 序列化存在安全漏洞;

http:

基于 Http 表单提交的远程调用协议,使用 Spring 的 HttpInvoke 实现。

多个短连接,传输协议 HTTP,传入参数大小混合,提供者个数多于消费者,需要给应用程序和浏览器 JS 调用;

webservice:

基于 WebService 的远程调用协议,集成 CXF 实现,提供和原生WebService 的互操作。

多个短连接,基于 HTTP 传输,同步传输,适用系统集成和跨语言调用;

hessian:

集成 Hessian 服务,基于 HTTP 通讯,采用 Servlet 暴露服务,Dubbo 内嵌Jetty 作为服务器时默认实现,提供与 Hession 服务互操作。

多个短连接,同步 HTTP传输, Hessian 序列化,传入参数较大,提供者大于消费者,提供者压力较大,可传文件;

Redis:基于 Redis 实现的 RPC 协议

朋友圈分享一下

02

服务提供者能实现失效踢出是什么原理?

正经回答:

服务失效踢出基于 zookeeper 的临时节点原理。

03

RPC 架构有哪些组件?

正经回答:

一个基本的 RPC 架构里面应该至少包含以下 4 个组件:

客户端(Client):

服务调用方(服务消费者);

客户端存根(Client Stub):

存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端;

服务端存根(Server Stub):

接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理;

服务端(Server):

服务的真正提供者。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正经回答:
  • 正经回答:
  • 正经回答:
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档