大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2):消息队列、ElasticSearch、Mysql等亮点合集】

本文将持续更新~~

历史文章:

后端项目亮点合集(1):Redis篇_后端项目有什么亮点-CSDN博客

本文的作用:

(1)简历优化:针对自己的简历,对Redis亮点进行优化升级,或者进行补充;

(2)项目设计提供参考:下文中的Redis解决方案和最佳实践可以作为项目设计的参考;

(3)搜索导向与教程查找:下文的关键词和技术点可以作为搜索相关教程和资料的搜索项;

温馨提示:

在写项目亮点的时候,尽可能地量化出结果,并且适当加粗,比如:“使用Redis缓存,将请求时间500ms降低至25ms,大大提升了系统性能”

                              ——来自求职经验分享(1):一份合格的简历应该如何写?-CSDN博客

一、消息队列(Kafka、RabbitMQ)

  1. 使用消息队列(如 Kafka)实现评论功能的异步削峰,减轻系统的负载压力。
  2. 对评论功能进行了预加载,提高响应速度。
  3. 使用 Canal 结合消息队列实现数据库和缓存的同步,保证数据的一致性。
  4. 使用验证码 + 消息队列方式对秒杀接口进行限流,实现削峰填谷;同时使用消息队列实现异步订单处理。(适用于电商秒杀系统)
  5. 使用消息队列实现订单延迟关闭功能。
  6. 使用 RabbitMQ 的死信队列实现自动取消订单功能。
  7. 使用消息队列实现海量数据的异步推送。
  8. 使用 RabbitMQ 进行结果通知,基于延迟队列处理超时未支付订单。

二、ElasticSearch

  1. 基于 ElasticSearch 的机器人对话功能,通过 ElasticSearch 分词查询提高回复内容的准确性。
  2. 使用 ElasticSearch 结合中文分词器和拼音分词器实现搜索时自动补全功能。
  3. 使用 ElasticSearch 实现文章内容的快速查找。/ 使用 ElasticSearch 实现知识库。
  4. 使用 ElasticSearch 存储账户信息进行模糊提示。
  5. XX发布使用本地消息表XXL-Job 实现分布式事务控制,使用 Elasticsearch 为XX建立索引,提高XX检索效率。
  6. 使用 ElasticSearch 搜索引擎优化帖子搜索的功能,并使用 Quartz 定时计算帖子的分数,实现热帖排行。

三、MySQL

  1. 数据库使用 Mycat 实现分库分表,以及两主两从读写分离
  2. 使用乐观锁解决超卖问题(适用于电商秒杀系统)。
  3. 使用主键分页 INNER JOIN 延迟关联优化深分页问题。
  4. 使用 JDBC事务的批量操作,将数据分批插入到数据库中,以提高效率和性能。
  5. 修复慢查询问题,通过使用线程池将 in 子查询进行分批处理,提高查询效率。
  6. 使用乐观锁解决并发冲突
  7. 查询千万数据,利用 SQL 事务和多线程提高大量插入的速度,避免内存溢出。

四、多线程

  1. 将耗时的业务逻辑封装,通过启动固定数量的线程,从队列中取出任务进行异步执行,防止接口响应超时。
  2. 使用 Completablefuture 线程池异步的方式实现商品的页面显示,将不同表的操作异步调用后任务结合返回数据。
  3. 通过 ReentrantLock+自旋锁机制解决 Token 刷新问题,避免大量用户同时请求,减少大量资金损耗。
  4. 使用 Disruptor 替代异步编排 Completablefuture 和线程池,解决多线程下的事件驱动问题,提高系统吞吐量。

五、文件操作

  1. 使用 Files.walk(source).parallel() 进行文件移动,利用多线程并行处理,减少 I/O 操作和 CPU 等待时间。(适用于需要上传文件的项目)
  2. 使用 NIO 中的 FileChannel 类进行文件下载,利用零拷贝特性,提高文件移动速度。
  3. 使用 WebUpload 中间件实现大文件的分片上传,并利用 MD5 实现重传秒传(断点续传)功能,提高文件上传速度。
  4. 使用 EasyExcel 实现 Excel 文件批量导入和导出。
  5. 使用 MinIO 高性能对象存储实现图片和视频等文件的存储。

六、安全

  1. 使用 JWT 实现注册分布式单点登录,以及用户信息校验,保障登录用户信息安全。
  2. 使用时间戳+nonce方案防止重放攻击。
  3. API接口进行签名,防止数据被篡改。
  4. 使用接口隐藏(接口加盐)和状态模式设计模式来实现秒杀接口的防刷限流。(适用于秒杀系统)
  5. 实现第三方Gitee登录。
  6. 使用 SpringSecurity 实现用户登录。

七、其他

  1. 使用预先设定好的敏感词初始化前缀树,实现对用户发布的敏感词进行过滤。
  2. 使用 RateLimiter 类 或者 Redis + Lua 脚本实现接口限流。
  3. 使用 WebSocket 实现用户下单或催单时能够给管理端进行提醒,避免了商家频繁查看订单页面。
  4. 使用 WebSocket 实现在线聊天功能(适用于聊天模块,如好友私聊、客服聊天)。
  5. 使用 SpringTask 处理超时订单,避免手动操作。
  6. 使用 Quartz 任务调度框架,定期更新话题浏览量。
  7. 使用雪花算法生成分布式 ID
  8. 使用防重 Token 令牌实现接口幂等性。
  9. 使用 FreeMarker 自动生成增删查改代码(适用于代码生成项目)。
  10. 使用 Jenkins + Docker 进行自动化部署和持续集成,解决微服务项目部署繁琐的问题。
  11. 使用 XXL-Job 作为分布式任务调度平台,实现长任务的异步处理。
  12. 使用 AOP+TraceID 记录接口访问日志,实现任务的追踪、监控和诊断。
  13. 使用 Xxl-job 定时将新增记录更新到数据库做备份,提高系统性能和响应速度。
  14. 设计 API 签名认证算法,为用户分配唯一 ak/sk 以鉴权,保障调用的安全性。
  15. 使用 Java Runtime 对象的 exec 方法实现了对 Java 程序的编译和执行,并使用 Docker 隔离用户代码,实现了更安全的代码沙箱。(适用于 OJ 平台)
  16. 使用 Elastic Stack 搭建日志收集系统,对调试日志、业务日志、错误日志、接口访问日志进行分场景监控。

八、第三方集成

  1. 使用 SpringBoot 对接支付宝,实现支付模块。
  2. 使用七牛云 OSS 对象存储存储菜品图片,加快图片响应速度。

九、SpringCloud

  1. 使用 GateWay 网关解决跨域问题,以及路由转发。
  2. 各服务间通过 Fegin/Dubbo 进行同步通信。
  3. 使用 Sentinel 实现微服务的流控、隔离、熔断降级等功能。
  4. 使用 Seata 解决分布式事务问题,采用 AT 模式,构建 undolog 日志表,实现数据最终一致性。

十、设计模式

  1. 使用 Builder 模式构建复杂对象。
  2. 使用责任链模式重构请求数据准确性检验。
  3. 使用策略模式实现评论服务,根据不同业务场景选择合适的评论方案。
  4. 实现 OAuth2.0 协议时,采用策略模式为接入用户中心的应用提供三类授权服务。

 后续将推出

(1)持续更新文章:消息队列、Elasticsearch、Mysql、多线程、文件操作、安全、设计模式等亮点集合;

(2)基于上述文章亮点的具体实现以及面试八股文细节;

(欢迎点赞收藏关注~~)

更多历史精彩文章:

求职经验分享(1):一份合格的简历应该如何写?-CSDN博客

求职经验分享(2):简历如何优化以及如何应对面试【后端篇】-CSDN博客

求职经验分享(3):如何找到理想的应届生求职项目?【后端篇】-CSDN博客

想要快速掌握Redis、消息队列、Elasticsearch、MySQL以及多线程等技术的最新亮点和合集吗?现在,老白特别为您准备了一份全面的技术亮点合集(持续更新中),请关注公众号后台私信“ 技术亮点合集”,即可免费获取!

感兴趣的小伙伴,千万不要错过这个机会!关注我们的公众号:绝命Coding

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机交叉编译基于ARM平台的opencv(ffmpeg/x264)

背景: 由于手上有一块rk3568的开发板,需要运行yolov5跑深度学习模型,但是原有的opencv不能对x264格式的视频进行解码,这里就需要将ffmpegx264编译进opencv。 但是开发板算力有限,所以这里采用在windows下,安…

【chatgpt】 PyTorch中reshape和view

在 PyTorch 中,reshape 和 view 都用于改变张量的形状,但它们在实现和使用上有一些重要的区别。理解这些区别对于在复杂的张量操作中选择合适的方法非常关键。 view 方法 连续性要求:view 方法要求原始张量在内存中是连续的。如果张量不是连…

从零开始实践大模型 - 配置环境

本文地址:blog.lucien.ink/archives/549 本文将介绍在面向深度学习时,推荐的环境配置以及一些使用 Linux 的习惯。 本文的部分内容与 Debian 下 CUDA 生产环境配置笔记 有所重叠,但也有些许的不一样,在正文中不额外注明。 前言 本…

绝缘子陶瓷绝缘子玻色绝缘子聚合物绝缘子检测数据集VOC+YOLO格式2050张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2050 标注数量(xml文件个数):2050 标注数量(txt文件个数):2050 标注…

Debezium系列之:支持在一个数据库connector采集中过滤某些表的删除事件

Debezium系列之:支持在一个数据库connector采集中过滤某些表的删除事件 一、需求二、相关技术三、参数设置四、消费数据一、需求 在一个数据库的connector中采集了多张表,部分表存在数据归档的业务场景,会定期从表中删除历史数据,希望能过滤掉存在数据归档这些表的删除事件…

Ubuntu 22.04远程自动登录桌面环境

如果需要远程自动登录桌面环境,首先需要将Ubuntu的自动登录打开,在【settings】-【user】下面 然后要设置【Sharing】进行桌面共享,Ubuntu有自带的桌面共享功能,不需要另外去安装xrdp或者vnc之类的工具了 点开【Remote Desktop】…

Orangepi配合IIC驱动OLED屏幕

目录 一、OLED屏幕 二、Orangepi的IIC接口及OLED屏幕硬件接线 2.1 Orangepi的IIC接口: 2.2 Orangepi与OLED屏幕硬件接线: 三、wiringPi库示例代码 3.1 wiringPi库OLED屏幕示例代码: 3.2 OLED显示自己想要的字符: 一、OLED屏…

unix高级编程系列之文件I/O

背景 作为linux 开发者,我们不可避免会接触到文件编程。比如通过文件记录程序配置参数,通过字符设备与外设进行通信。因此作为合格的linux开发者,一定要熟练掌握文件编程。在文件编程中,我们一般会有两类接口函数:标准…

Mysql慢日志、慢SQL

慢查询日志 查看执行慢的SQL语句,需要先开启慢查询日志。 MySQL 的慢查询日志,记录在 MySQL 中响应时间超过阀值的语句(具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒…

实现基于Spring Boot的Web安全防护

实现基于Spring Boot的Web安全防护 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今互联网应用的开发中,保护用户数据和系统安全至关重要。S…

阿里云RDS云数据库库表恢复操作

最近数据库中数据被人误删了,记录一下恢复操作方便以后发生时进行恢复. 1.打开控制台,进入云数据库实例. 2.进入实例后 ,点击右侧的备份恢复,然后看一下备份时间点,中间这边都是阿里云自动备份的备份集,基本都是7天一备…

详解「一本通 5.1 练习 1」括号配对(区间DP经典题)

一.题目 二.思路 题目的大意是说:给你一个只由[ ] ( )构成的字符串,请问需要增加多少个字符才能使其变为一个合法的括号序列。 因为添加若干字符使其达到匹配的目的等价于将不匹配的字符去除使得字符串达到匹配的目的 所以这题只需计算出已匹配完成的括号数,再…

中英双语介绍伦敦金融城(City of London)

中文版 伦敦金融城,通常称为“金融城”或“城”(The City),是英国伦敦市中心的一个著名金融区,具有悠久的历史和全球性的影响力。以下是关于伦敦金融城的详细介绍,包括其地理位置、人口、主要公司、历史背…

机器学习原理之 -- 随机森林分类:由来及原理详解

随机森林分类器是机器学习中一种强大且灵活的集成学习方法。它通过构建多棵决策树并结合其结果来提高分类精度和稳定性。本文将详细介绍随机森林分类器的由来、基本原理、构建过程及其优缺点。 二、随机森林的由来 随机森林(Random Forest)由Leo Breima…

【优化论】约束优化算法

约束优化算法是一类专门处理目标函数在存在约束条件下求解最优解的方法。为了更好地理解约束优化算法,我们需要了解一些核心概念和基本方法。 约束优化的核心概念 可行域(Feasible Region): 比喻:想象你在一个园艺场…

基于机器学习的永磁同步电机矢量控制策略-高分资源-下载可用!

基于机器学习的永磁同步电机矢量控制策略 优势 训练了RL-Agent,能够提高电机在非线性负载下的性能。 部分程序 仿真结果 转矩估计及dq轴电流。 代码有偿,50,需要的可以联系。

数学建模算法目标规划

在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。特别是在计算机能处理成千上万个…

底层软件 | STM32启动分析之main函数是怎样跑起来的

应届生面试,基本上嵌入式一般都是基于32的项目,记得我当年面大疆的就是有这个题目。 1、STM32启动规则 STM32根据boot0和boot1的电平决定启动位置,boot00时从主Flash启动,即0x08000000地址启动。 按照spec,M3核的中断…

构建工程化:多种不同的工程体系如何编写MakeFile

源码分析 核心MakeFile 这个 Makefile 是一个复杂的构建脚本,用于管理和构建一个大型项目。它包括多个目标、条件判断和递归调用 make 命令来处理多个子项目和子目录。让我们逐部分进行详细解析。 伪目标和变量定义 .PHONY: all clean install build test init.…

依赖注入的优点、解决的问题以及其底层原理和逻辑

依赖注入(Dependency Injection, DI)是一种设计模式,用于实现控制反转(Inversion of Control, IoC)。它通过将对象的依赖关系从类内部转移到外部配置或注入,从而提高代码的可维护性、可测试性和可扩展性。以…