• 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

    最后

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

    【项目解读】

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

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

    IT黑马
  • 相关阅读:
    【缓存】缓存穿透、缓存并发、热点缓存解决方案
    【缓存】redis缓存设计
    【AOP】Spring AOP 和 AspectJ
    disruptor
    Spring Boot application starters
    【日志】log4j2 yml
    PHP中间件--ICE
    docker 简单入门(一)
    redis、memcache和mongodb各自的优缺点是什么
    MYSQL三大范式
  • 原文地址:https://www.cnblogs.com/hmit/p/14367017.html
Copyright © 2020-2023  润新知