大廠面試官贊不絕口的后端技術亮點【后端項目亮點合集(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.pswp.cn/diannao/41776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41776.shtml
英文地址,請注明出處:http://en.pswp.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)。它通過將對象的依賴關系從類內部轉移到外部配置或注入,從而提高代碼的可維護性、可測試性和可擴展性。以…