分享一次面试经历
今天不只是分享面经,还分享一下主人公的整个面试经历,看看你是否会有相同的思路或者不同的见解,可以在评论区讨论一下:
问在项目里做了什么技术贡献。实施过程中,遇到哪些困难,怎么去思考解决的,然后这个技术贡献对业务的收益
介绍了轨迹增补及去重,以及对账,主动查询任务中心等
0
问轨迹怎么判断相似的
这里他主要是想问的是车辆轨迹这种,和物流的轨迹不一样。所以这一段感觉答的不是很好。
问分库分表怎么预估容量
- 每天数据量
- 存储周期
- 预估增长
- 预留备份空间
问单表建议放多少数据
5000万行,索引高度3-4层
问用到rocketmq的哪些特性
- 消息重试机制
- 延迟消息
rocketmq的最大重试次数
16次
rocketmq的消息是顺序消费吗
区分顺序和并发
rocketmq消费的时候关注哪些配置
- 并发消费还是顺序消费是消费者客户端决定的
- tag
- 重试次数
mysql的事务怎么实现的
Undo Log来回滚
问怎么控制版本,mvcc
垃圾回收的时候,怎么找到所有对象的存储地址
Go中所有的内存分配(如new、make或&操作符分配的内存)都是通过Go运行时的内存分配器(Allocator)完成的。这个分配器维护了一个清晰的内存分配布局:
- 堆上的对象:由垃圾回收器负责管理,垃圾回收器知道堆上每一个已分配对象的地址和大小。
- 栈上的对象:分配在Goroutine栈上(通常生命周期较短),GC会通过栈扫描来检查指针。
- 分配器会记录堆内存块的元信息(Metadata),包括每个对象的起始地址、大小、以及是否包含指针等。这些信息为垃圾回收器提供了跟踪对象的基础。
- 运行时通过以下机制完全掌握对象地址:
- 堆的分配是有组织的:
- 堆内存是分块管理的,GC依赖堆的元数据(如mheap和mspan)知道哪些地址上有对象。
- 每个分配的对象都有记录,GC能通过扫描堆快速定位它们。
- 类型元信息(Type Metadata):
- 编译器在生成代码时会为每种类型附加元信息,包括对象的大小、结构、以及哪些字段是指针。
- GC使用这些元信息来识别对象中的指针。
- 栈扫描:
- GC在运行时可以扫描每个Goroutine的栈,找到栈上的指针,这些指针指向堆中的对象。
- 栈本身是内存中连续的区域,容易扫描。
- Go的垃圾回收器能找到所有对象的存储地址,核心在于:
- 运行时维护了完整的堆内存分配记录,包括每个已分配对象的起始地址、大小和指针布局。
- 编译器生成的类型元信息帮助GC精确识别对象中的指针。
- 堆、栈和寄存器的综合扫描,确保找到所有活动对象。
- 写屏障和并发GC确保垃圾回收过程中不会遗漏新增或修改的对象。
gmp模型中,最多有多少个M
Go语言默认限制M的最大数量为10000。这个限制可以通过runtime/debug包中的SetMaxThreads函数来设置
P个数由GOMAXPROCS确定,默认为处理器核数
redis缓存热点数据,热点key和热点实例
- redis集群,分散热点数据
- 多几个实例,做负载均衡
问redis集群怎么扩容
- 一致性hash
- 只需要部分迁移,只迁移新增的节点旁的节点数据
读过什么源码吗?
了解过哪些架构设计的思想
- DDD有哪些名词概念
- 领域:指一个特定的业务范围或知识领域
- 实体:实体是领域模型中具有唯一标识符的对象
- 领域模型:描述了领域内的实体、值对象、聚合根以及它们之间的关系
- 值对象:领域模型中具有唯一标识符的对象。值对象通常是不可变的
- 聚合(Aggregate):聚合是一组相关对象的集合,它将领域模型中的实体和值对象组合在一起,作为一个数据修改的单元。例如,在电商系统中,一个订单聚合可能包含订单实体、订单项值对象、收货地址值对象等,这些对象在业务上紧密相关,共同构成了一个完整的订单概念。
- 聚合根(Aggregate Root):聚合根是聚合中的一个特殊实体,它是聚合的入口点,外部对象只能通过聚合根来访问聚合内的其他对象。
- 领域服务:一种无状态的操作,它用于实现领域中的业务逻辑,这些逻辑不能自然地归属于某个实体或值对象。例如,在电商系统的促销活动领域,计算商品折扣后的价格这个逻辑可能不适合放在商品实体或订单实体中,因为它涉及到促销规则等多个因素,这时就可以通过领域服务来实现这个计算逻辑。
- 限界上下文:显示的边界,用于划分领域模型的范围
- DDD架构思想
- DDD通常采用分层架构,一般包括用户接口层、应用层、领域层和基础层。这种分层结构有助于分离不同的职责,使系统的各个部分更加独立和易于维护。用户接口层负责处理用户请求和展示数据,例如提供Web界面或者API接口;应用层主要协调领域层和基础层之间的操作,编排业务流程;领域层是核心,包含领域模型和领域服务,用于实现具体的业务逻辑;基础层提供数据存储、外部服务调用等基础功能。
- 以一个电商系统的下单流程为例,用户接口层接收用户的下单请求并传递给应用层。应用层会调用领域层的领域服务来处理订单的创建,领域服务会与领域模型中的订单实体、商品实体等进行交互,完成业务逻辑,如验证商品库存、计算总价等。最后,领域层将处理结果返回给应用层,应用层再通过用户接口层将结果反馈给用户。同时,在这个过程中,基础层可能会提供数据存储服务,如将订单信息保存到数据库中。
面试官提的建议:
在这些项目中,要更多地从技术层面入手,着重强调技术所带来的贡献与收益,突出技术落地后的实际成效。另外,对于所运用的技术细节,即便大家普遍都在使用某些技术,但其安全性与应用场景紧密相关,你需要深入了解在具体的业务应用场景下,该技术是如何被应用的,包括你自身对这项技术的使用方式等细节,也都需要进一步熟悉掌握。
欢迎关注 ❤
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以私信我。
相关文章:
分享一次面试经历
今天不只是分享面经,还分享一下主人公的整个面试经历,看看你是否会有相同的思路或者不同的见解,可以在评论区讨论一下: 问在项目里做了什么技术贡献。实施过程中,遇到哪些困难,怎么去思考解决的࿰…...
网络攻击行为可视化分析系统【数据分析 + 可视化】
一、系统背景 随着信息技术的快速发展,网络已成为现代社会不可或缺的一部分。然而,与此同时,网络攻击手段也日益多样化和复杂化,给企业和个人的信息安全带来了极大的威胁。传统的网络攻击分析方法往往依赖于人工分析和处理大量的…...
Qt 智能指针
Qt 智能指针 文章目录 Qt 智能指针QScopedPointer1. 自动删除对象2. 转移所有权3. 管理私有数据 QSharedPointer关键特性注意事项 QWeakPointer注意事项 QPointer QScopedPointer QScopedPointer 是 Qt 提供的一个智能指针,主要用于简化资源管理,防止内…...
CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)
禾川Q1 PLC MODBUS TCP 通信(PLC作为MODBUS TCP通信主站) 禾川Q1 PLC MODBUS TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读28次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如…...
10.STM32F407ZGT6-内部温度传感器
参考: 1.正点原子 前言: 本笔记的主要目的和意义就是,再次练习ADC的使用。 32.1 内部温度传感器简介 STM32F407 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。对于STM32F407 系列来说,该温度传感器在…...
运维安全中心(堡垒机)
阿里云运维安全中心(Alibaba Cloud Operation and Maintenance Security, OMS,通常也称为“堡垒机”)是一款针对云上运维管理的安全解决方案。它专注于加强云环境中运维过程的安全性,确保对关键云资源和服务的访问可控、可审计&am…...
Linux OOM | Early OOM | 进程监视
注: 本文为 “Linux OOM” 相关文章合辑。 Linux OOM 终结者 译者:花名有孚 | 2015-07-21 08:47 现在是早晨 6 点钟。已经醒来的我正在总结到底是什么事情使得我的起床闹铃提前了这么多。我们的监控系统显示,Plumbr 服务出故障了。 现在我…...
【2024年华为OD机试】(A卷,100分)- 等和子数组最小和(Java JS PythonC/C++)
一、问题描述 题目描述 给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值。 输入描述 第一行输入 m 接着输入m个数,表示此数组nums 数据范围:1<m&…...
NFS服务
nfs文件系统 NFS:NetworkFileSystem网络文件系统,基于内核的文件系统。 服务安装 不固定端口启动,会注册到rpcbind(固定端口)服务上, 局域网适用[rootvm ~]# yum -y install nfs-utils # 依赖安装rpcbind [ro…...
RabbitMQ 交换机、队列和路由键的命名规范
在 RabbitMQ 中,使用 Topic Exchange 模式时,交换机、队列和路由键的命名规范是非常重要的,尤其是在多环境和多微服务的场景中。合理的命名规范可以提高消息系统的可维护性、可扩展性以及可读性。以下是一些关于 Topic Exchange 模式中交换机…...
腾讯云AI代码助手编程挑战赛-刑说
作品简介 鉴于当代普法力度不够大,这个刑说可以帮助大家更好的普及法律知识 技术架构 采用了全后端分离的架构,前端使用Vue.js,腾讯云的AI服务处理自然语言理解与生成。 实现过程 开发环境、开发流程 系统:win11 开发工具&…...
【测试】持续集成CI/CD
近期更新完毕,建议关注收藏点赞~ 目录 概括gitJenkinspostman集成jenkins代码集成jenkins 概括 CI/CD stands for Continuous Integration and Continuous Deployment 定义 团队成果持续集成到公共平台。一天可以集成1次or多次 本地代码管理 git 远程代…...
阿里云直播Web
官方文档:Web播放器SDK常见问题_视频点播(VOD)-阿里云帮助中心 bug:播流的不稳定,直播总会进入 onM3u8Retry 监听,用户端就会黑屏,(但其实并没有关播,正常关播进入的是pause这个监听࿰…...
DuckDB:PRAGMA语句动态配置数据库行为
PRAGMA语句是DuckDB从SQLite中采用的SQL扩展。PRAGMA命令可能会改变数据库引擎的内部状态,并可能影响引擎的后续执行或行为。本文介绍PRAGMA命令及其典型应用场景。 DuckDB PRAGMA介绍 在 DuckDB 中,PRAGMA 是一种编译指示(compiler directi…...
GO通过SMTP协议发送邮件
什么是SMTP协议 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是用于发送邮件的协议。当一个邮件服务器需要发送邮件给另一个邮件服务器时,它会使用SMTP协议与目标服务器建立连接,并传输邮件内容。SMTP协议的…...
轻量自高斯注意力机制LSGAttention模型详解及代码复现
模型背景 近年来,卷积神经网络(CNN)在高光谱图像分类领域取得了显著进展。然而,CNN面临 长距离关系建模 和 计算成本 增加的挑战。为解决这些问题,研究人员提出了基于 轻量自高斯注意(Light Self-Gaussian-Attention, LSGA) 机制的视觉转换器(Vision Transformer, VIT),旨…...
解读若依框架中的`@Excel` 和 `@Excels` 注解
文章目录 一、Excels 注解详解1.1 适用场景1.2 作用与好处 二、Excel 注解详解2.1 核心属性解析2.2 高级用法2.3 综合应用案例 三、总结 解读若依框架中的 Xss 注解博客:解读若依框架中的 Xss 注解 接下来我们将对若依框架中的 Excel 和 Excels 注解进行更加详细的…...
云商城--基础数据处理和分布式文件存储
第2章 基础数据处理和分布式文件存储 1.分布式文件存储系统Ceph学习 1).掌握Ceph架构 2).掌握Ceph组件 3).搭建Ceph集群(了解) 2.Ceph使用 1).基于Ceph实现文件上传 2).基于Ceph实现文件下载 3.SKU、SPU管理 1).掌握SKU和SPU关系 2).理解商品发…...
六十九:基于openssl实战验证RSA
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据加密和数字签名领域。在实际开发和学习过程中,理解 RSA 的工作原理和使用场景非常重要。本文将以 OpenSSL 工具为基础,通过实例操作来验证和理解 RSA 的…...
Three.js 用户交互:构建沉浸式3D体验的关键
文章目录 前言一、基本交互:鼠标与触摸事件二、高级交互:键盘控制与游戏手柄支持三、物理模拟与碰撞检测四、手势识别与多点触控五、增强现实(AR)与虚拟现实(VR)六、触觉反馈与震动效果七、语音控制八、眼球…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
