某天,小五看到小三愁眉苦脸的,于是问了她有什么心事~
公司的社区网站访问越来越慢了,特别是搜索功能,这该怎么优化呀?
你们都用了啥技术搭建的呀?
springboot+mybatis,数据库mysql,还用了redis做缓存。
搜索不会是直接模糊搜索表字段?like "%**%"?
是呀,要搜索几个字段,还得关联表才能搜出来呢。
傻呀,干嘛不使用全文检索工具lucene或者分布式搜索Elasticsearch来优化搜索服务。
可以尝试一下这个解决方案:使用Elasticsearch做引擎单独部署一个搜索微服务,先把mysql中的数据同步过去。新数据保存到数据库的同时,往RabbitMq也塞一份,然后搜索服务再读取RabbitMq中的消息,实现数据同步和服务解耦。
听起来很不错的样子~
你们的网站现在也壮大了,可以尝试使用springcloud进行业务拆分了,便于维护和管理。某些业务场景还可以使用MongoDB来提高性能。
你说得对,现在问题来了,你说的这些Elasticsearch、RabbitMq、MongoDB、springCloud我都不会怎么办???感觉自学一年时间都不够学了~~
别怕,刚好有个java进阶训练营很适合你,你现在还是初级程序员,等学会了这些技术,可以轻松拿个30K,一起来了解一下~~
------
先给你看看有关训练营的一张思维导图,你想学的主流技术都有!
喜欢可以关注我 也可以发简信获取架构资料!
重要的事情说三遍,转发、转发、转发后再发私信,才可以拿到!
(一张关于课程的思维导图)
哇,内容还真多。
哈哈,这些都是初级程序员进阶高级的必修技术,当然仅仅上课还不行,课后实战也很重要,来了解一下~
喜欢可以关注我 也可以发简信获取架构资料!
【课程大纲】
思维导图梳理知识、网站发展历程梳理
利用思维导图快速学习主流框架
学会思维导图解读开源项目,积累经验
网站从零到分布式架构演变与知识体系介绍
Spring综合讲解
Spring Ioc原理讲解
Servlet到MVC到Spring Mvc的比较式学习
spring mvc原理分析
持久层框架mybatis篇与mybatis-plus使用
mybatis原理讲解
手写一个简易mybatis
增强工具mybatis-plus
spring boot篇与lombok介绍(两节课)
spring boot与spring mvc之间的关系
spring boot集成mybatis
spring boot集成redis
spring boot集成spring session解决session共享问题
spring boot的日志管理lockback介绍
使用工具lombok使用,消除冗长
redis与ehcache缓存对比与使用
缓存的用法
ehcache缓存策略详解
使用ehcache作为mybatis的二级缓存
redis的五种基本类型详解与运用
spring的缓存注解使用
接口文档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操作
开源项目-多人博客项目mblog解读
项目模块业务切分
开发授权OAuth2.0介绍--qq、微博登录
消息发布与通知模块解读
全文检索工具hibernate search的运用
权限框架shiro介绍与使用
shiro详细架构讲解
简单shiro例子--hello world
shiro认证流程与原理分析
spring boot集成shiro
renren-fast项目的授权模块分析
持续集成工具jenkins的安装与运用
jenkins环境安装与界面介绍
插件管理与介绍
jenkins发布maven项目war包到tomcat
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
百万级网络通讯框架t-io介绍与项目实战
t-io框架的hello world
t-io常用类说明
开源项目SpringBootLayIM解读(springboot+layim+t-io)
开源项目-秒杀、抢购解决方案miaoshao解读(两节课)
秒杀系统场景特点与设计要点分析
高并发优化方向
秒杀限流处理
灵活使用redis五种数据类型
mysql的存储过程使用
高并发测试,jmeter工具的使用
Elasticsearch - 搜索引擎入门
基础概念与应用场景
Elasticsearch安装与启动
创建/删除索引,增删改查数据
索引原理分析
微服务套装spring cloud篇(两节课)
基于rest的简易微服务hello world
spring cloud核心特性与整体架构分析
注册中心--Eureka详解
服务消费者--Feign详解
熔断器--Hystrx详解
服务网关--Zuul详解
消息队列RabbitMq的使用
消息与消息队列
RabbitMq安装与基本命令
RabbitMq的五种队列模式分析与代码实战
消息确认机制(事务+Confirm)详解
Spring boot集成RabbitMq
认识nosql数据库MongoDB
mongodb简介特点,与redis、mysql的区别
mongodb的使用场景分析与实例讲解
mongodb的linux安装
mongodb的数据库、集合、文档等概念解析与操作
springboot集成mongodb实现增删改查
代码实现mysql的数据同步到mongodb
网友评论