请问简历上写了rpc项目需要去被dubbo的源码吗
点赞 3

相关推荐

05-17 18:01
复旦大学 Java
Q1. Lamda表达式A1: Lamda表达式更简洁,创建匿名函数。简化函数式接口。只有一个表达式时,表达式的结果直接作为返回值;多个表达式,需要大括号,return语句作为返回值。lamda表达式使JAVA支持函数式编程,允许函数作为参数传递;结合Stream API处理集合操作如过滤。Q2. 为什么有包装类 Integer和int的区别A2. 集合,泛型只能使用引用类型,不能使用基本数据类型。集合需要支持动态内存分配、垃圾回收等特性,而这些机制都依赖于对象。int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况。基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。我自己想的是 集合如Set需要hashCode和equals方法来判断元素是否已经存在,所以集合必须用封装类Q3: 项目架构 选型 原因Q4: 微服务间调用方式、通信协议,为何这样选Dubbo 是阿里巴巴开源的高性能 Java RPC 框架,广泛应用于微服务架构中,其核心优势在于高效的远程调用能力、丰富的服务治理机制以及灵活的多协议支持。以下是关于 Dubbo 的微服务调用方式、支持的通信协议及选择 Dubbo 的原因的详细解析:---### **一、Dubbo 的微服务调用方式**Dubbo 的微服务间调用主要基于 **RPC(远程过程调用)** 实现,通过以下核心机制完成服务交互:1. **服务注册与发现**     - 服务提供者启动时,将自身信息(如服务名、地址、端口)注册到注册中心(如 Zookeeper、Nacos),消费者通过注册中心动态获取可用服务列表。   - 支持多种负载均衡策略(随机、轮询、最少活跃调用等),自动选择最优服务实例进行调用。2. **RPC 调用流程**     - **接口定义与共享**:服务提供者和消费者需共享相同的服务接口定义(如 Java Interface),通过代理机制屏蔽底层通信细节。   - **序列化与传输**:调用参数和返回结果通过序列化(如 Hessian、Protobuf)转换为二进制数据,通过 TCP 或 HTTP 协议传输。3. **服务治理机制**     - **容错策略**:提供 6 种容错模式(如失败自动切换、快速失败、广播调用),应对不同场景的异常处理需求。   - **动态配置**:通过配置中心(如 Nacos)实现参数动态更新,无需重启服务。---### **二、Dubbo 支持的通信协议**Dubbo 支持多种通信协议,开发者可根据场景灵活选择:| **协议**       | **特点**                                                                 | **适用场景**                                                                 ||----------------|--------------------------------------------------------------------------|-----------------------------------------------------------------------------|| **Dubbo 协议** | 默认协议,基于 TCP 长连接与二进制传输,性能高、延迟低,但跨语言支持有限。 | 高并发、低延迟的 Java 微服务间调用。                                           || **Triple 协议** | 基于 HTTP/2 和 Protobuf,兼容 gRPC,支持流式通信和 TLS 加密,穿透性强。 | 云原生环境、跨语言调用(如与 Go/Python 交互)或需要网关代理的场景。             || **HTTP/REST**  | 基于 HTTP 的 RESTful 风格,兼容性强,但性能较低。                   | 跨语言 Web 服务集成或对外提供开放 API。                                        || **gRPC**       | 基于 HTTP/2 的高效协议,支持双向流式通信,需依赖 Protobuf 定义服务。 | 需要强类型约束、跨语言且对性能要求较高的场景。                                 || **Hessian**    | 二进制协议,跨语言支持较好,但性能略逊于 Dubbo 协议。                          | Java 与非 Java 系统(如 PHP)间的轻量级集成。                                  |---### **三、选择 Dubbo 的核心原因**1. **高性能与低延迟**     - Dubbo 协议采用单一长连接和异步非阻塞通信(基于 Netty),在高并发场景下性能显著优于 HTTP/REST,例如在阿里巴巴双十一中支持万亿级调用。   - 序列化优化(如 Dubbo3 的 Triple 协议性能较 gRPC 提升 40%)。2. **完善的服务治理**     - **负载均衡**:支持随机、轮询、一致性哈希等策略,自适应算法可动态感知服务端负载。   - **容错与熔断**:内置多种容错模式(如 Failover、Failfast),支持服务降级和熔断机制,保障系统稳定性。   - **动态扩展**:服务实例可动态注册/注销,支持水平扩展与灰度发布。3. **多协议与生态兼容性**     - 支持 Dubbo、Triple、gRPC 等多种协议,可无缝集成 Spring Cloud、Kubernetes 等生态。   - 提供统一的服务治理能力(如监控、链路追踪),适用于混合技术栈环境。4. **生产级可靠性验证**     - 历经阿里巴巴大规模电商场景验证,支持百万级节点集群和智能流量调度,具备高可用性。---### **四、总结**Dubbo 通过高效的 RPC 调用机制、灵活的多协议支持以及强大的服务治理能力,成为构建高性能微服务系统的首选框架。其优势尤其体现在 **高并发场景下的性能表现**、**跨语言与云原生适配能力** 以及 **企业级服务治理功能**。若需进一步优化性能或扩展功能,可结合具体场景选择 Triple、gRPC 等协议,或通过第三方工具(如 Prometheus、Zipkin)增强监控能力。
招商银行AI面6人在聊 查看4道真题和解析
点赞 评论 收藏
分享
04-26 17:12
已编辑
门头沟学院 前端工程师
3.4正式投递,官网有投递渠道的投了四五十家,面了20+场,所有能想起来名字的小中大厂基本都投过了,没有的要么简历挂要么没约面要么oc后约面。以下是有面试联系的,只有测评和笔试的没整理,阿里系除了饿了么和大文娱全部简历挂:大部分都写了面经,具体可看主页,timeline如下:腾讯IEG: 1.8一面,腾讯PCG QQ: 2.17一面,腾讯CGD: 3.13一面,腾讯PCG 生态合作: 3.20一面(拒),腾讯职能线: 3.28一面,腾讯PCG QQ: 4.11一面,4.17二面,饿了么: 3.25测评,3.7笔试,3.28一面,4.13二面,4.18HR面,4.21意向,携程: 3.6测评,3.27笔试,4.7一面,字节: 3.11一面(拒),4.16一面,快手: 3.24一面,美团一站: 3.15笔试,3.18一面,3.26二面,美团二战: 3.15笔试,4.2一面,4.7二面,美团三战: 3.15笔试,4.15一面,4.17二面,4.21意向,作业帮: 3.18笔试,3.27一面,B站直播: 3.25一面,安恒信息: 3.23测评,3.25一面(电话offer),华为: 4.15测评,免机试,4.28一面(拒),海康威视: 4.11测评,4.15笔试,4.21一面(拒),荣耀: 4.18笔试,4.23一面(拒)最终选择了美团今年真的是太忙太不容易了,一月做项目实验和平台,发了专利,二月寒假纯玩导致后续悲剧,三月发小论文,开始投实习,四月项目结项。因为太菜要做的事太多,中间心态崩了好多次,有的时候背着背着八股就开始恍惚自闭怀疑自己,天天在实验室熬到一两点最后一个走,回宿舍路上都在背八股,半夜三点多躺在床上焦虑到睡不着,做梦都在面试被提问,基本每天都睡不到6小时,因为准备实习一直搁置项目,oc后又熬大夜三天肝了100+页5w多字图文并茂结项报告……在找暑期实习路上面了20+次真的成为了传奇耐面王与耐挂王,因为本人敏感内耗玻璃心,每次面试的尬尴与沉默、面试官的质疑与淡淡的不屑等,还时不时突然想起来刺痛一下。这期间默默崩溃了无数次,又硬挺着坚持下来。迄今为止终于各个任务都完成取得了还不错的结果,接下来是应付导师偷溜去实习了。这段时间混牛客还混到了高级领航员,要有自己的牛客荣誉奖章了,这怎么不算起号成功了呢()谢谢大家这段时间的交流与送花,也感谢很多友友的鼓励与祝福,祝大家都能拿到自己满意的offer,实习秋招工作顺利!😋    
找工作小泡泡:大佬太强了
点赞 评论 收藏
分享
牛客网
牛客企业服务