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

最后

  • 前面的知识回顾与总结
  • 技术栈的使用场景与综合运用分析
  • 我的自媒体之路总结

【项目解读】

开源项目很多,每周我们都会重点分析一个项目,同时课程也紧紧结合项目,尽量让大家在项目中学会框架运用。

下面列举了部分会涉及到的开源项目:

posted @ 2021-02-03 14:53  942351507  阅读(216)  评论(0编辑  收藏  举报