Java面试题(每天10题)-------连载(46)

目录

Dubbo篇

1、Dubbo的默认集群容错方案

2、Dubbo支持哪些序列化方式?

3、Dubbo超时时间怎样设置?

4、服务调用超时问题怎么解决?

5、Dubbo在安全机制方面是如何解决的?

6、Dubbo和Dubbox之间的区别

7、Dubbo和Spring Cloud的关系

8、Dubbo和Spring Cloud的区别?

9、Dubbo支持那些协议,每种协议的应用场景、优缺点

10、Dubbo有哪些注册中心


Dubbo篇

1、Dubbo的默认集群容错方案

Failover Cluster

2、Dubbo支持哪些序列化方式?

默认使用 Hessian 序列化,还有 Duddo、FastJson、Java 自带序列化。 

3、Dubbo超时时间怎样设置?

Dubbo 超时时间设置有两种方式:
  • 服务提供者端设置超时时间,在 Dubbo 的用户文档中,推荐如果能在服务端多配置就尽量多配置,因为服务提供者比消费者更清楚自己提供的服务特性。
  • 服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消费者端为主,即优先级更高。因为服务调用方设置超时时间控制性更灵活。如果消费方超时,服务端线程不会定制,会产生警告。

4、服务调用超时问题怎么解决?

dubbo 在调用服务不成功时,默认是会重试两次的。

5、Dubbo在安全机制方面是如何解决的?

Dubbo 通过 Token 令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo 还提供服务黑白名单,来控制服务所允许的调用方。

6、Dubbo和Dubbox之间的区别

dubbox 基于 dubbo 上做了一些扩展,如加了服务可 restful 调用,更新了开源组件等。

7、Dubbo和Spring Cloud的关系

Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了 Spirng、Spirng Boot 的优势之上,两个框架在开始目标就不一致,Dubbo定位服务治理、Spirng Cloud 是一个生态。

8、Dubbo和Spring Cloud的区别?

 

Java面试题(每天10题)-------连载(46)_第1张图片

最大的区别:Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。

而 SpringCloud 是基于 Http 协议+Rest 接口调用远程过程的通信,相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖。

9、Dubbo支持那些协议,每种协议的应用场景、优缺点

  • dubbo单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。传输协议 TCP,异步,Hessian 序列化;
  • rmi采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现Serializable 接口,使用 java 标准序列化机制,使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传输协议 TCP多个短连接,TCP 协议传输,同步传输,适用常规的远程服务调用和 rmi 操作。在依赖低版本的 Common-Collections 包,java 序列化存在安全漏 洞;
  • webservice基于 WebService 的远程调用协议,集成 CXF 实现,提供和原生 WebService 的互操作。多个短连接,基于 HTTP 传输,同步传输,适用系统集成和跨语言调用;
  • http基于 Http 表单提交的远程调用协议,使用 Spring HttpInvoke 现。多个短连接,传输协议 HTTP,传入参数大小混合,提供者个数多于消费者,需要给应用程序和浏览器 JS 调用;
  • hessian集成 Hessian 服务,基于 HTTP 通讯,采用 Servlet 暴露服务,Dubbo 内嵌 Jetty 作为服务器时默认实现,提供与 Hession 服务互操作。多个短连接,同步 HTTP 传输,Hessian 序列化,传入参数较大,提供者大于消费者,提供者压力较大,可传文件;
  • memcache基于 memcached 实现的 RPC 协议
  • redis基于 redis 实现的 RPC 协议

10、Dubbo有哪些注册中心

  • Multicast 注册中心: Multicast 注册中心不需要任何中心节点,只要广播地址,就能进行服务注册和发现。基于网络中组播传输实现;
  • Zookeeper 注册中心: 基于分布式协调系统 Zookeeper 实现,采用Zookeeper watch 机制实现数据变更;
  • redis 注册中心: 基于 redis 实现,采用 key/Map 存储,住 key 存储服务名和类型,Map key 存储服务 URLvalue 服务过期时间。基于 redis 的发/订阅模式通知数据变更;
  • Simple 注册中心

你可能感兴趣的:(java,开发语言)