Java老司机:把这些主流技术搞懂,拿20K没问题
公司的社区网站访问越来越慢了,特别是搜索功能,这该怎么优化呀?
网站使用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
最后
- 前面的知识回顾与总结
- 技术栈的使用场景与综合运用分析
- 我的自媒体之路总结
【项目解读】
开源项目很多,每周我们都会重点分析一个项目,同时课程也紧紧结合项目,尽量让大家在项目中学会框架运用。
下面列举了部分会涉及到的开源项目: