大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】

news2024/9/22 19:32:25

本文将持续更新~~

 hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹

💥个人主页:绝命Coding-CSDN博客
💥 所属专栏:后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖

历史文章:

后端项目亮点合集(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.coloradmin.cn/o/1901568.html

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

相关文章

【MYSQL】InnoDB引擎为什么选可重复读作为默认隔离级别

InnoDB引擎为什么选可重复读作为默认隔离级别 一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable&#x…

一级指针 二级指针

目录 一级指针 二级指针 通过二级指针打印原数据 一级指针 一级指针就是存放变量的指针 代码演示&#xff1a; #include<stdio.h> int main() {int a 10;int* pa &a;return 0; } pa就是一级指针变量&#xff0c;是变量就会有地址&#xff0c;因为变量都是在…

Spring Boot 中的监视器是什么?有什么作用?

前言&#xff1a; 监听器相信熟悉 Spring、Spring Boot 的都知道&#xff0c;但是监视器又是什么&#xff1f;估计很多人一脸懵的状态&#xff0c;本篇分享一下 Spring Boot 的监视器。 Spring Boot 系列文章传送门 Spring Boot 启动流程源码分析&#xff08;2&#xff09; …

四端口千兆以太网交换机与 SFP 扩展功能

在数字化时代&#xff0c;网络基础设施的重要性日益凸显&#xff0c;它是企业和个人取得成功的关键支撑。配备 SFP 插槽的 4 端口千兆以太网交换机提供了一种灵活且可扩展的网络解决方案&#xff0c;能够应对快速的数据传输、低延迟以及不断增长的带宽需求。本篇文章深入探讨了…

轻松设置:服务器域名配置全攻略

目录 前置条件 在阅读本篇内容之前&#xff0c;请先确保以下物料已准备好&#xff1a; 一台公网服务器&#xff0c;服务正常运行申请完成的域名&#xff0c;在对应域名服务商后台正常DNS解析域名备案完成可选条件&#xff1a;有https访问请求时&#xff0c;需要申请SSL证书 …

Spring源码十三:非懒加载单例Bean

上一篇Spring源码十二&#xff1a;事件发布源码跟踪中&#xff0c;我们介绍了Spring中是如何使用观察者设计模式的思想来实现事件驱动开发的&#xff1a;实际上就是将所有监听器注册到广播器中&#xff0c;并通过监听该事件的监听器来处理时间的。结合前面十二篇文章我们将Spri…

关于linux服务器更改镜像后连接不上vscode问题

问题样子解决办法直接看 问题样子 问题描述&#xff1a;从centos换到ubantu后&#xff0c;xshell能直接连接上&#xff08;没有更改ssh配置信息&#xff09;&#xff0c;但是vscode连不上&#xff08;配置文件因为端口号和ip是一样的&#xff0c;也没法改&#xff09; 猜测…

这款新的 AI 语音助手击败了 OpenAI,成为 ChatGPT 最受期待的功能之一

OpenAI 推迟了 ChatGPT 令人印象深刻的语音模式&#xff0c;这让许多 AI 聊天机器人的粉丝感到不安&#xff0c;但他们现在可能已经被挖走了。法国人工智能开发商 Kyutai 推出了一款名为 Moshi 的实时语音 AI 助手。 Moshi 旨在通过语音&#xff08;如 Alexa 或 Google Assista…

207 课程表

题目 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

SpringBoot新手快速入门系列教程二:MySql5.7.44的免安装版本下载和配置,以及简单的Mysql生存指令指南。

我们要如何选择MySql 目前主流的Mysql有5.0、8.0、9.0 主要区别 MySQL 5.0 发布年份&#xff1a;2005年特性&#xff1a; 基础事务支持存储过程、触发器、视图基础存储引擎&#xff08;如MyISAM、InnoDB&#xff09;外键支持基本的全文搜索性能和扩展性&#xff1a; 相对较…

3.python

闯关 3作业 本节关卡&#xff1a; 学习 python 虚拟环境的安装 Python 的基本语法 学会 vscode 远程连接 internstudio 打断点调试 python 程序

NATAPP内网穿透使用

1. natapp能干嘛 可以将本地的内网ip映射到外网上&#xff0c;远程访问该连接&#xff0c;实现外网展示网站。平时做的应用开发都只能在局域网本地访问&#xff0c;通过内网穿透&#xff0c;可以通过外网进行访问。 2. 注册用户 网址&#xff1a;https://natapp.cn/自行完成…

2024阿里国际春招笔试

第一题 0 解题思路&#xff1a; 数据范围很大&#xff0c;肯定得找规律。 当n1时&#xff0c;0&#xff0c;1&#xff0c;结果为0 当n2时&#xff0c;00&#xff0c;01&#xff0c;10&#xff0c;11&#xff0c;结果为1 当n3时&#xff0c;000&#xff0c;001&#xff0c;010&a…

C#——密封类详情

密封类 密封类是密封方法的扩展&#xff0c;用于确保某个类不会被继承。在C#中&#xff0c;你可以使用sealed关键字来声明一个密封类。 public sealed class SealedClass {// 类成员定义 } 如果使用密封类继承的话&#xff0c;程序会报错&#xff01;&#xff01;&#xff0…

奇景光电战略投资Obsidian,共筑热成像技术新未来

5月29日,业界领先的IC设计公司奇景光电宣布,将对热成像传感器解决方案制造商Obsidian进行战略性投资,并以主要投资者的身份,参与到Obsidian的可转换票据融资活动中。虽然奇景光电并未公开具体的投资金额,但这一举动无疑向市场传递了一个明确的信号:奇景光电对Obsidian的技…

gcc/g++的四步编译

目录 前言1.预处理&#xff08;进行宏替换&#xff09;2.编译&#xff08;生成汇编&#xff09;3.汇编&#xff08;生成二进制文件&#xff09;4. 链接 &#xff08;生成可执行文件&#xff09;a. 动态库 && 动态链接b. 静态库 && 静态链接c. 验证d. 动静态链接…

[leetcode hot 150]第一百三十题,被围绕的区域

题目&#xff1a; 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O 组成&#xff0c;捕获 所有 被围绕的区域&#xff1a; 连接&#xff1a;一个单元格与水平或垂直方向上相邻的单元格连接。区域&#xff1a;连接所有 0 的单元格来形成一个区域。围绕&#xff1a…

广州佛山中山数据中心机房搬迁公司

随着数据中心的发展和迭代&#xff0c;必然面临数据中心搬迁。数据中心搬迁听来简单&#xff0c;其实涉及诸多方面&#xff0c;如信息迁移的安全性、业务的连续性、搬迁的规范性、方案的可行性、组织的统一性等。友力科技&#xff08;广州&#xff09;有限公司&#xff0c;自原…

女生学计算机好不好?感觉计算机分有点高……?

众所周知&#xff0c;在国内的高校里&#xff0c;计算机专业的女生是非常少的&#xff0c;很多小班30人左右&#xff0c;但是每个班女生人数只有个位数。这就给很多人一个感觉&#xff0c;是不是女生天生就不适合学这个东西呢&#xff1f;女生是不是也应该放弃呢&#xff1f;当…

排序——交换类排序、插入类排序、选择类排序、归并类排序

排序 排序算法分为交换类排序、插入类排序、选择类排序、归并类排序。 交换类排序 冒泡排序 冒泡排序的基本思想是&#xff1a;从后往前&#xff08;或从前往后&#xff09;两两比较相邻元素的值。若A[ j - 1 ] > A[ j ]&#xff0c;则交换它们&#xff0c;直到序列比较…