Java SpringCloud-Dubbo面试题


前言

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。

如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!

1、谈谈你对Dubbo的理解?

Dubbo 是alibaba开源的一款高性能、轻量级的RPC 框架,由10层模式构成,
其中包括接口服务层、服务注册层、配置层、监控层、远程调用层等。
Dubbo 的工作原理是这样的:

  • 1、服务启动的时候,服务提供者和消费者根据配置信息,连接到注册中心,分别向注册中心注册和订阅服务;
  • 2、注册中心根据服务订阅关系,返回提供者的地址列表给消费者,然后消费者把地址列表缓存到本地。如果地址列表有变更,注册中心会通过异步的方式通知消费者;
  • 3、消费者生成代理对象(@reference),同时根据负载均衡策略选择一台服务,调用具体的接口实现;
  • 4、服务提供者和消费者都会定时发送统计数据到监控中心。

2、Dubbo 与 Spring Cloud 的区别:

  • 1、Dubbo是一个RPC 框架,它注重于服务的调用。
    Spring Cloud是一套技术解决方案,它提供了快速构建分布式系统的常用的一些组件。
  • 2、两者最大的区别是 Dubbo是基于TCP协议,加上Netty,再配合 Hession 序列化实现 RPC 通信;
  • SpringCloud 是基于Http协议加上Rest接口实现远程调用通信;
    总的来说,Http请求会有更大的报文,占用更多的带宽。但是REST相比RPC更为灵活,而且代码耦合度更低。

3、默认使用的是什么通信框架,还有别的选择吗?

默认也推荐使用 netty 框架,还有 mina。

4、服务调用是阻塞的吗?

在Java程序中默认是阻塞的,没有返回值的时候可以异步调用。
Dubbo是基于NIO非阻塞实现并行调用,客户端不需要启动多线程,即可完成并行调用多个远程服务,相对多线程开销较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值