当前位置: 首页 > news >正文

同程面试(部分)(未完全解析)

一面

  • Java直接内存有了解吗?为什么Java NIO的效率更高?Netty用到很多NIO,来了一个请求后Netty是怎么分发的,它里面有哪些角色?粘包、拆包怎么解决?
  • 为什么建立TCP连接是三次握手,而不是四次?seq的作用?
  • 设计一个简单的RPC框架。
    • Dubbo的新版本对注册中心这一块有什么变化?
      参考答案1,2:Dubbo 之前的版本中,直接从注册中心里面获取 Provider 端的服务信息,获取到的信息已经是一个完整的可调用的服务信息。Dubbo3.0新支持应用维度的服务注册和发现。

本质上来说,应用维度注册信息 + 服务元数据 = 服务维度注册信息。或者说,应用维度注册,只是一种重新组织这些信息的方式。

需要知道调用的服务方法名,入参出参的详细信息。所以这部分信息也是需要存储下来的。但是这部分信息非常大,每个服务中可能有 10 多个方法,每个方法可能有三四个方法入参,入参和出参的完整数据结构往往非常复杂。这部分数据信息也叫做服务的元数据信息。

Provider 往注册中心写的时候,将整个数据的写入分成两部分:写入注册中心;写入元数据中心
注册中心作为服务的注册和发现,更加关注数据的实时性和有效性(watch 机制)。。。所以注册中心中,只需要存储 IP 和端口。元数据中心中存储 URL 中除 IP和端口外的其他信息,加上服务测试需要的服务方法名,服务方法的出入参信息。元数据是一个 KEY-VALUES的持久化存储,是独立于注册中心的存储,它不需要有 watch 的机制,而只需要提供持久化存储。图中使用的的 KEY VALUE 存储是 Redis。。。可以自己实现 DB 存储,或者其他持久化存储的方式。

Consumer 端获取 Provider 列表信息的改造:

Dubbo 之前的版本中,直接从注册中心里面获取 Provider端的服务信息,获取到的信息已经是一个完整的可调用的服务信息。但是 Provider 端写入改造之后,原有 Consumer 端获取的Provider 服务信息的方式不可用了。除了从注册中心获取到的数据之外,还需要从元数据中心里拿到元数据信息,然后对这两部分数据做一个Merge 之后才能构建出完整的可调用的服务信息。

    • 如果服务有节点宕机了,注册中心里它能及时下掉吗?注册中心怎么选型?参考答案3

在使用 Zookeeper 获取服务列表时,如果此时的 Zookeeper 集群中的 Leader 宕机了,该集群就要进行 Leader的选举,又或者 Zookeeper 集群中半数以上服务器节点不可用。。。那么将无法处理该请求。所以说,Zookeeper不能保证服务可用性。

不同于 ZooKeeper 的选举 leader 的过程,Eureka Server 采用的是Peer to Peer 对等通信。这是一种去中心化的架构,无 master/slave 之分,每一个 Peer 都是对等的。。。Eureka的集群中,只要有一台Eureka还在,就能保证注册服务可用(保证可用性)

      • Eureka是如何保证最终一致性的?参考答案4

Peer to Peer 模式,副本间不分主从,任何副本都可以接收写操作,然后每个副本间互相进行数据更新。

如果自己的信息变更是另一个Eureka Server同步过来的,这是再同步回去的话就出现数据同步死循环了。。。数据的新旧一般是通过版本号来定义的

      • Eureka集群规模非常大时会出问题吗,比如有几千个节点?
  • springboot注解的原理

二面

  • 多租户系统下的聊天记录表,ShardingJDBC分库分表对租户ID采用哈希取模算法,如何解决因租户冷热不均造成数据倾斜?比如5个大租户的聊天记录很多,另外95个小租户的聊天记录比较少,希望这5个大租户各有一个表,另外95个小租户的记录全部路由到另外一个表,如何设计?
    如果后来95个小租户中有一个小租户晋升为大租户,如何在用户基本无感知的情况下实现数据迁移?可以用流式处理来实现吗?

  • Kafka为什么高效5

  • kafka broker能做到收到消息精确一次吗?参考答案6:设置acks = all,可以保证 Producer 到 Server 之间不会丢失数据,即 At Least Once 语义。0.11 版本的 Kafka,引入了一项重大特性:幂等性。所谓的幂等性就是指 Producer 不论向 Server 发送多少次重复数据,Server 端都只会持久化一条。幂等性结合 At Least Once 语义,就构成了 Kafka 的 Exactly Once 语义。即:At Least Once + 幂等性 = Exactly Once
    0.11 版本的 Kafka,引入了一项重大特性:幂等性。所谓的幂等性就是指 Producer 不论向 Server 发送多少次重复数据,Server 端都只会持久化一条。幂等性结合 At Least Once 语义,就构成了 Kafka 的 Exactly Once 语义。即:At Least Once(ACK=-1) + 幂等性 = Exactly Once

要启用幂等性,只需要将 Producer 的参数中 enable.idompotence 设置为 true即可。Kafka的幂等性实现其实就是将原来下游需要做的去重放在了数据上游。开启幂等性的 Producer 在初始化的时候会被分配一个PID,发往同一 Partition 的消息会附带 Sequence Number。而Broker 端会对<PID, Partition, SeqNumber>做缓存,当具有相同主键的消息提交时,Broker 只会持久化一条。

  • zookeeper可以用来做什么?介绍一下它的watch机制
  • 处理过哪些线上故障
  • 垃圾回收器中CMS与G1的区别

  1. Dubbo-go应用维度注册模型 ↩︎

  2. 阿里技术专家详解 Dubbo 实践,演进及未来规划 ↩︎

  3. 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比 ↩︎

  4. Eureka 集群是怎么保持数据一致的? ↩︎

  5. 《专题四 服务化改造》之《第三章 【补充资料】常见消息中间件应用详解》之《第十节 Kafka》 ↩︎

  6. Kafka+SparkStreaming的精准一次性消费 中的《1、Kafka的精准一次性》 ↩︎

相关文章:

同程面试(部分)(未完全解析)

一面 Java直接内存有了解吗&#xff1f;为什么Java NIO的效率更高&#xff1f;Netty用到很多NIO&#xff0c;来了一个请求后Netty是怎么分发的&#xff0c;它里面有哪些角色&#xff1f;粘包、拆包怎么解决&#xff1f;为什么建立TCP连接是三次握手&#xff0c;而不是四次&…...

讯飞星火_VS_文心一言

获得讯飞星火认知大模型体验授权&#xff0c;第一时间来测试一下效果&#xff0c;使用申请手机号登录后&#xff0c;需要同意讯飞SparkDesk体验规则&#xff0c;如下图所示&#xff1a; 同意之后就可以进行体验了&#xff0c;界面如下&#xff1a; 讯飞星火效果体验 以下Promp…...

Java的集合

1. HashMap排序题&#xff0c;上机题。 已知一个HashMap<Integer&#xff0c;User>集合&#xff0c; User有name&#xff08;String&#xff09;和age&#xff08;int&#xff09;属性。请写一个方法实现对HashMap 的排序功能&#xff0c;该方法接收 HashMap<Intege…...

addr2line 使用,定位kernel panic 代码位置

在kernel崩溃时&#xff0c;方便定位代码。 需要打开kernel配置CONFIG_DEBUG_INFO。 需要有System.map和vmlinux文件&#xff0c;一般在out目录。 一般panic的时候会有给出panic的指针&#xff0c;如下down_write。 el1_data说明发生异常了&#xff0c;进入和entry.S文件&a…...

OpenAI目前所有模型介绍

目录 概述 GPT-4 (limted beta) GPT-3.5 GPT-3 各类模型介绍 DALLE Beta Whisper Beta Embeddings Moderation Codex (deprecated) 概述 模型描述GPT-4 Limited beta 一组在 GPT-3.5 上改进的模型&#xff0c;可以理解并生成自然语言或代码GPT-3.5一组在 GPT-3 上改…...

【P43】JMeter 吞吐量控制器(Throughput Controller)

文章目录 一、吞吐量控制器&#xff08;Throughput Controller&#xff09;参数说明二、测试计划设计2.1、Total Executions2.2、Percent Executions2.3、Per User 一、吞吐量控制器&#xff08;Throughput Controller&#xff09;参数说明 允许用户控制后代元素的执行的次数。…...

方正书版命令详解

方正书版常用的排版符包括&#xff1a; 空格&#xff1a;表示文字之间的间距&#xff0c;不同字号的文字需要适当调整空格大小。 省略号&#xff1a;用于省略一段文字&#xff0c;通常用三个点表示&#xff08;…&#xff09;。 破折号&#xff1a;用于表示强调或者断句&…...

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

大多数模型都是黑盒&#xff0c;其内部逻辑对最终用户是隐藏的。为了鼓励透明度&#xff0c;我们通过简单地将Interface类中的interpretation关键字设置为default&#xff0c;使得向模型添加解释变得非常容易。这允许您的用户了解输入的哪些部分负责输出。 1、Interpret解释 …...

本地项目上传到Git(Gitee)仓库

一、步骤解答&#xff08;详细图解步骤见第二大点&#xff09; 1、打开我们的项目所在文件夹&#xff0c;我们发现是不存在.git文件 2、在你的项目文件夹外层【鼠标右击】弹出菜单&#xff0c;在【鼠标右击】弹出的菜单中&#xff0c;点击【Git Bash Here】&#xff0c;弹出运…...

Android 12.0屏蔽掉SystemUI的某些通知提示音

1.概述 在12.0的系统开发中,在系统SystemUI中会发一些通知的声音,但是同时也会在开机的时候,会有一些通知的声音,特别是不想要的一些通知的声音, 这些对于产品还是有一些影响的,所以为了产品体验,就需要屏蔽掉一些开机的通知的声音 2.屏蔽某些通知的提示音的核心代码 …...

测试计划模板二

XXX测试计划 文档作者: 编写日期: 项目经理: 批准日期: 文档模板修改纪录表 日期 修改人 修改内容描述...

华为OD机试真题B卷 Java 实现【分奖金】,附详细解题思路

一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个人随机抽取一个数字。按照工号的顺序往后排列&#xff0c;遇到第一个数字比自己数字大的&#xff0c;那么…...

IMX6ULL平台I2C数据结构分析

IMX6ULL平台I2C数据结构分析 文章目录 IMX6ULL平台I2C数据结构分析i2c_clienti2c_adapterimx_i2c_structimx_i2c_hwdataimx_i2c_dma 在 i.MX 平台的 I2C 驱动中&#xff0c;存在多个相关的结构体&#xff0c;它们之间的联系和在内核中的作用如下&#xff1a; struct i2c_client…...

实时时钟 RTC(2)

RTC 使能与停止 RTC 上电后立即启动&#xff0c;不可关闭&#xff0c;软件应在32K 晶体振荡器完全起振后再设置当前时间&#xff1b;在晶体振荡器起振之前芯片使用内部环振计时&#xff0c;偏差较大。 RTC 时间设置 软件可以在任意时刻直接设置RTC 时间寄存器&#xff1b;由于…...

弄懂局部变量

成员变量和局部变量的区别 多个线程调用同一个对象的同一个方法时&#xff1a; 如果方法里无成员变量&#xff0c;那么不受任何影响 如果方法里有成员变量&#xff0c;只有读操作&#xff0c;不受影响 存在写操作&#xff0c;考虑多线程影响值 多线程调用…...

倾斜摄影三维模型数据的高程偏差修正的几何纠正技术方法探讨

倾斜摄影三维模型数据的高程偏差修正的几何纠正技术方法探讨 倾斜摄影是一种先进的数字摄影技术&#xff0c;可以生成高分辨率、高精度的三维模型数据。然而&#xff0c;在倾斜摄影中&#xff0c;由于相机的倾斜角度和地形的高程差异&#xff0c;可能会出现高程偏差问题。为了…...

怎么发表CCF期刊?CCF期刊有什么不同之处? - 易智编译EaseEditing

发表CCF期刊&#xff0c;可以参考一下步骤&#xff1a; 选择目标期刊&#xff1a; 首先选择一个适合自己的目标期刊&#xff0c;可以是CCF推荐的高水平期刊&#xff0c;也可以是其他被广泛认可的期刊。 撰写论文&#xff1a; 根据目标期刊的要求&#xff0c;撰写论文。确保论…...

feat:使用企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

背景&#xff1a;企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生&#xff1a; 需要实现成&#xff1a; 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK&#xff0c;网页开发者 可借助企业微信…...

Java键盘事件处理及监听机制解析

文章目录 概念KeyEventKeyListener代码演示总结 概念 Java事件处理采用了委派事件模型。在这个模型中&#xff0c;当事件发生时&#xff0c;产生事件的对象将事件信息传递给事件的监听者进行处理。在Java中&#xff0c;事件源是产生事件的对象&#xff0c;比如窗口、按钮等&am…...

Git详解——安装、使用、搭建、IDEA集成

Git 看目录&#xff0c;篇幅挺长&#xff0c;越往后面越重要 目录一、git是什么&#xff1f;二、为什么要使用Git&#xff1f;三、版本控制工具四、git下载安装以及环境配置五、git基本命令六、git项目搭建七、远程仓库怎么搞&#xff1f;git,gitlab,github,gitee区别八、ide…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...