公司的社區網站訪問越來越慢了,特別是搜索功能,這該怎麼優化呀?
網站使用springboot+mybatis,資料庫mysql,還用了redis做緩存。
搜索不會是直接模糊搜索表欄位?like "%**%"?
使用全文檢索工具lucene或者分布式搜索Elasticsearch來優化搜索服務。
可以嘗試一下這個解決方案:使用Elasticsearch做引擎單獨部署一個搜索微服務,先把mysql中的數據同步過去。新數據保存到資料庫的同時,往RabbitMq也塞一份,然後搜索服務再讀取RabbitMq中的消息,實現數據同步和服務解耦。
網站現在也壯大了,可以嘗試使用springcloud進行業務拆分了,便於維護和管理。某些業務場景還可以使用MongoDB來提高性能。
現在問題來了,提到的的這些Elasticsearch、RabbitMq、MongoDB、springCloud我都不會怎麼辦???感覺自學一年時間都不夠學了~~
那麼看看本文,小編準備了大綱,快來了解下你需掌握的知識還有哪些?
思維導圖梳理知識、網站發展歷程梳理
- 利用思維導圖快速學習主流框架
- 學會思維導圖解讀開源項目,積累經驗
- 網站從零到分布式架構演變與知識體系介紹
持久層框架mybatis篇與mybatis-plus使用
- mybatis的核心原理
- mybatis底層源碼分析與講解
- 一個手寫簡易mybatis
- 增強工具mybatis-plus,解決單表增刪改查
spring boot篇與lombok介紹
- spring boot與spring mvc之間的關係
- spring boot的準備、運行階段原理分析
- spring boot的手動裝配、自動裝配模式
- spring boot集成mybatis、redis
- spring boot集成spring session解決session共享問題
- 簡化代碼工具,lombok介紹與使用
redis的分布式緩存、分布式鎖運用
- 緩存的用法
- redis的主從、高可用模式配置與原理
- redis的五種基本類型詳解與運用
- redis實現周排行榜、熱點排行
- redis的分布式鎖運用與項目實例分析
接口文檔swagger2與接口調試工具postman
- swagger2的常用註解介紹
- springboot集成swagger2
- Restful接口設計
- 調試工具postman使用
開源框架-快速開發平台renren-fast解讀
- 項目技術框架分析
- 前後端分離-token機制
- 自定義異常-學會如何優雅處理異常
- 安全防範模塊--預防xss攻擊與sql注入
- redis的實戰運用分析
- 多數據源的使用分析總結
操作存儲介質,spring data jpa的運用
- jpa、hibernate、spring data jpa關係講解
- spring boot集成spring data jpa
- jpa的常用註解
- jpa的基本CRUD操作
- 操作Mysql、MongoDB、Elasticsearch等存儲介質
權限框架shiro介紹與使用
- shiro詳細架構講解
- shiro認證流程與原理分析
- spring boot集成shiro、並實現分布式
- renren-fast項目的授權模塊分析
基於Spring Security OAuth2.0實現單點登錄SSO
- OAuth2.0協議介紹
- spring security的認證流程與使用
- 基於cookie和token兩種模式的單點登錄實現與講解
- SpringBoot集成Spring Security oauth2運用
- 綜合開源項目講解使用
持續集成工具jenkins的安裝與運用
- jenkins環境安裝與介面介紹
- 插件管理與介紹
- jenkins發布maven項目war包到tomcat
- 配合gitee、github webhook實現更新自動部署
nginx負載均衡工具介紹與運用
- 負載均衡與故障轉移
- 正向代理與反向代理的區別
- nginx安裝與常用命令
- nginx能做什麼?(負載均衡、動靜分離等)
- nginx實現藍綠部署、加密訪問
tomcat的整體架構介紹與session共享方案
- Http server與tomcat
- tomcat的整體架構與組件解讀
- tomcat的基本工作流程
- tomcat的性能優化
- tomcat基於插件實現session共享
websocket協議介紹,學會即時通訊
- http與websocket
- websocket協議解析
- websocket項目hello world
- spring boot基於STOMP協議集成websocket
- 一個用websocket實現聊天室的項目講解
百萬級網絡通訊框架t-io介紹與項目實戰
- t-io的使用邏輯分析
- t-io框架的hello world
- t-io常用類說明
- 開源項目SpringBootLayIM解讀(springboot+layim+t-io)
開源項目-秒殺、搶購解決方案miaosha解讀
- 秒殺系統場景特點與設計要點分析
- 高並發優化方向
- 秒殺限流處理
- 靈活使用redis五種數據類型
- mysql的存儲過程使用
- 高並發測試,jmeter工具的使用
分布式搜尋引擎Elasticsearch入門
- 基礎概念與應用場景
- Elasticsearch安裝與啟動
- 創建/刪除索引,增刪改查數據
- 索引原理分析
- 基於canal中間件實現同步索引庫
微服務套裝spring cloud篇
- 基於rest的簡易微服務hello world
- spring cloud核心特性與整體架構分析
- 註冊中心--Eureka詳解
- 服務消費者--Feign詳解
- 熔斷器--Hystrx詳解
- 服務網關--Zuul詳解
- 服務鏈路追蹤--Sleuth詳解
- 開源項目綜合解讀
消息隊列RabbitMq的使用
- 消息與消息隊列
- RabbitMq安裝與基本命令
- RabbitMq的五種隊列模式分析與代碼實戰
- 消息確認機制(事務+Confirm)詳解
- Spring boot集成RabbitMq
最後
- 前面的知識回顧與總結
- 技術棧的使用場景與綜合運用分析
- 我的自媒體之路總結
【項目解讀】
開源項目很多,每周我們都會重點分析一個項目,同時課程也緊緊結合項目,儘量讓大家在項目中學會框架運用。
下面列舉了部分會涉及到的開源項目:
(涉及的部分項目解讀)
【思維導圖】
思維導圖梳理知識點,來為你指明方向
(部分課程思維導圖)
第一個實踐項目最好是
使用訓練營學過的技術框架從零到一搭建一個高可用的的博客項目。附帶有詳細的項目搭建過程!
資料獲取方式:轉發+關注,私信小編【資料】獲取
【最後】:小編非常感謝大家點贊、關注和轉發,歡迎大家留言討論學習心得!!!