本文將持續更新~~
?hello hello~ ,這里是絕命Coding——老白~💖💖 ,歡迎大家點贊🥳🥳關注💥💥收藏🌹🌹🌹
💥個人主頁:絕命Coding-CSDN博客
💥 所屬專欄:后端技術分享
這里將會不定期更新有關后端、前端的內容,希望大家多多點贊關注收藏💖
歷史文章:
后端項目亮點合集(1):Redis篇_后端項目有什么亮點-CSDN博客
本文的作用:
(1)簡歷優化:針對自己的簡歷,對Redis亮點進行優化升級,或者進行補充;
(2)項目設計提供參考:下文中的Redis解決方案和最佳實踐可以作為項目設計的參考;
(3)搜索導向與教程查找:下文的關鍵詞和技術點可以作為搜索相關教程和資料的搜索項;
溫馨提示:
在寫項目亮點的時候,盡可能地量化出結果,并且適當加粗,比如:“使用Redis緩存,將請求時間500ms降低至25ms,大大提升了系統性能”
????????????????????????????? ——來自求職經驗分享(1):一份合格的簡歷應該如何寫?-CSDN博客
一、消息隊列(Kafka、RabbitMQ)
- 使用消息隊列(如 Kafka)實現評論功能的異步削峰,減輕系統的負載壓力。
- 對評論功能進行了預加載,提高響應速度。
- 使用 Canal 結合消息隊列實現數據庫和緩存的同步,保證數據的一致性。
- 使用驗證碼 + 消息隊列方式對秒殺接口進行限流,實現削峰填谷;同時使用消息隊列實現異步訂單處理。(適用于電商秒殺系統)
- 使用消息隊列實現訂單延遲關閉功能。
- 使用 RabbitMQ 的死信隊列實現自動取消訂單功能。
- 使用消息隊列實現海量數據的異步推送。
- 使用 RabbitMQ 進行結果通知,基于延遲隊列處理超時未支付訂單。
二、ElasticSearch
- 基于 ElasticSearch 的機器人對話功能,通過 ElasticSearch 分詞查詢提高回復內容的準確性。
- 使用 ElasticSearch 結合中文分詞器和拼音分詞器實現搜索時自動補全功能。
- 使用 ElasticSearch 實現文章內容的快速查找。/ 使用 ElasticSearch 實現知識庫。
- 使用 ElasticSearch 存儲賬戶信息進行模糊提示。
- XX發布使用本地消息表和 XXL-Job 實現分布式事務控制,使用 Elasticsearch 為XX建立索引,提高XX檢索效率。
- 使用 ElasticSearch 搜索引擎優化帖子搜索的功能,并使用 Quartz 定時計算帖子的分數,實現熱帖排行。
三、MySQL
- 數據庫使用 Mycat 實現分庫分表,以及兩主兩從讀寫分離。
- 使用樂觀鎖解決超賣問題(適用于電商秒殺系統)。
- 使用主鍵分頁和 INNER JOIN 延遲關聯優化深分頁問題。
- 使用 JDBC 和事務的批量操作,將數據分批插入到數據庫中,以提高效率和性能。
- 修復慢查詢問題,通過使用線程池將 in 子查詢進行分批處理,提高查詢效率。
- 使用樂觀鎖解決并發沖突。
- 查詢千萬數據,利用 SQL 事務和多線程提高大量插入的速度,避免內存溢出。
四、多線程
- 將耗時的業務邏輯封裝,通過啟動固定數量的線程,從隊列中取出任務進行異步執行,防止接口響應超時。
- 使用 Completablefuture 線程池異步的方式實現商品的頁面顯示,將不同表的操作異步調用后任務結合返回數據。
- 通過 ReentrantLock+自旋鎖機制解決 Token 刷新問題,避免大量用戶同時請求,減少大量資金損耗。
- 使用 Disruptor 替代異步編排 Completablefuture 和線程池,解決多線程下的事件驅動問題,提高系統吞吐量。
五、文件操作
- 使用 Files.walk(source).parallel() 進行文件移動,利用多線程并行處理,減少 I/O 操作和 CPU 等待時間。(適用于需要上傳文件的項目)
- 使用 NIO 中的 FileChannel 類進行文件下載,利用零拷貝特性,提高文件移動速度。
- 使用 WebUpload 中間件實現大文件的分片上傳,并利用 MD5 實現重傳秒傳(斷點續傳)功能,提高文件上傳速度。
- 使用 EasyExcel 實現 Excel 文件批量導入和導出。
- 使用 MinIO 高性能對象存儲實現圖片和視頻等文件的存儲。
六、安全
- 使用 JWT 實現注冊分布式單點登錄,以及用戶信息校驗,保障登錄用戶信息安全。
- 使用時間戳+nonce方案防止重放攻擊。
- 對API接口進行簽名,防止數據被篡改。
- 使用接口隱藏(接口加鹽)和狀態模式設計模式來實現秒殺接口的防刷限流。(適用于秒殺系統)
- 實現第三方Gitee登錄。
- 使用 SpringSecurity 實現用戶登錄。
七、其他
- 使用預先設定好的敏感詞初始化前綴樹,實現對用戶發布的敏感詞進行過濾。
- 使用 RateLimiter 類 或者 Redis + Lua 腳本實現接口限流。
- 使用 WebSocket 實現用戶下單或催單時能夠給管理端進行提醒,避免了商家頻繁查看訂單頁面。
- 使用 WebSocket 實現在線聊天功能(適用于聊天模塊,如好友私聊、客服聊天)。
- 使用 SpringTask 處理超時訂單,避免手動操作。
- 使用 Quartz 任務調度框架,定期更新話題瀏覽量。
- 使用雪花算法生成分布式 ID。
- 使用防重 Token 令牌實現接口冪等性。
- 使用 FreeMarker 自動生成增刪查改代碼(適用于代碼生成項目)。
- 使用 Jenkins + Docker 進行自動化部署和持續集成,解決微服務項目部署繁瑣的問題。
- 使用 XXL-Job 作為分布式任務調度平臺,實現長任務的異步處理。
- 使用 AOP+TraceID 記錄接口訪問日志,實現任務的追蹤、監控和診斷。
- 使用 Xxl-job 定時將新增記錄更新到數據庫做備份,提高系統性能和響應速度。
- 設計 API 簽名認證算法,為用戶分配唯一 ak/sk 以鑒權,保障調用的安全性。
- 使用 Java Runtime 對象的 exec 方法實現了對 Java 程序的編譯和執行,并使用 Docker 隔離用戶代碼,實現了更安全的代碼沙箱。(適用于 OJ 平臺)
- 使用 Elastic Stack 搭建日志收集系統,對調試日志、業務日志、錯誤日志、接口訪問日志進行分場景監控。
八、第三方集成
- 使用 SpringBoot 對接支付寶,實現支付模塊。
- 使用七牛云 OSS 對象存儲存儲菜品圖片,加快圖片響應速度。
九、SpringCloud
- 使用 GateWay 網關解決跨域問題,以及路由轉發。
- 各服務間通過 Fegin/Dubbo 進行同步通信。
- 使用 Sentinel 實現微服務的流控、隔離、熔斷降級等功能。
- 使用 Seata 解決分布式事務問題,采用 AT 模式,構建 undolog 日志表,實現數據最終一致性。
十、設計模式
- 使用 Builder 模式構建復雜對象。
- 使用責任鏈模式重構請求數據準確性檢驗。
- 使用策略模式實現評論服務,根據不同業務場景選擇合適的評論方案。
- 實現 OAuth2.0 協議時,采用策略模式為接入用戶中心的應用提供三類授權服務。
?后續將推出
(1)持續更新文章:消息隊列、Elasticsearch、Mysql、多線程、文件操作、安全、設計模式等亮點集合;
(2)基于上述文章亮點的具體實現以及面試八股文細節;
(歡迎點贊收藏關注~~)
更多歷史精彩文章:
求職經驗分享(1):一份合格的簡歷應該如何寫?-CSDN博客
求職經驗分享(2):簡歷如何優化以及如何應對面試【后端篇】-CSDN博客
求職經驗分享(3):如何找到理想的應屆生求職項目?【后端篇】-CSDN博客
想要快速掌握Redis、消息隊列、Elasticsearch、MySQL以及多線程等技術的最新亮點和合集嗎?現在,老白特別為您準備了一份全面的技術亮點合集(持續更新中),請關注公眾號后臺私信“ 技術亮點合集”,即可免費獲取!感興趣的小伙伴,千萬不要錯過這個機會!關注我們的公眾號:絕命Coding
?