网站发展历程九大阶段,及知识体系梳理

SEO排名下降的九大原因与优化策略 搜索引擎优化(SEO)是提升网站在搜索结果中可见性的关键技术。其核心原理是通过内容质量、技术架构和外链建设等多维度优化,满足搜索引擎算法对网站价值的评估标准。在移动互联网时代,SEO技术价值尤为突出,能有效提升精准流量获取效率。典型的应用场景包括电商网站产品页排名、技术博客关键词覆盖等场景。本文基于实战经验,深度解析导致排名下滑的九大关键因素,涵盖内容原创性检测、关键词策略更新、移动端适配等热点问题,并提供Copyscape、Google Search Console等工具的具体应用方法,帮助开发者系统化解 阅读详情

网站发展历程

用思维导图学习java真的是一个不错的方式!今天,我们用导图的方式来梳理一下一个网站从0到1流量逐渐增加的过程中会涉及到的技术与知识体系。

讲讲一个网站在用户量越来越多,并发越来越高的情况下,它的架构是如何演变的呢?接下来,我们会用九个阶段来一一分析各个阶段发展的过程会涉及到的技术要点。

java入门

首先,不管怎么样,要搞一个网站,必须具备Java基础知识吧。在java基础里面,数据结构中的数组、链表、队列、栈的特点和使用场景要熟悉。线程、反射也是比较基础的东西,面试常问。在设计模式里面,我觉得还不用很特意去学习,很多容易忘记,很多时候我们的业务主要学会封装,那么代码管理起来就不叫简单的了,常用的模式:单例、工厂、代理、观察者、模板、策略这几个可以先熟悉一下。web方面的知识,http/tcp的四层需要了解,对于servlet、filter、listener都是web基础,session与cookie关系一定要弄懂。

框架基础

spring、mybatis是java程序员必备框架基础。spring的ioc、aop是核心概念,要对bean容器,利用aop自定义注解要熟悉运用。springmvc是现在使用最广泛的mvc框架。对应mvc的各大组件之间的关系和流程一定要熟悉,还有配置多数据源等。

SpringMVC流程

  • 1、用户发送请求至前端控制器DispatcherServlet。

  • 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

  • 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

  • 4、DispatcherServlet调用HandlerAdapter处理器适配器。

  • 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

  • 6、Controller执行完成返回ModelAndView。

  • 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

  • 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

  • 9、ViewReslover解析后返回具体View。

  • 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

  • 11、DispatcherServlet响应用户。

mybatis是现在主流的数据层框架,当然现在spring data jpa也有崛起的趋势,mybatis源码相对比较简单,可以去通读一遍。

springboot更是现在热门的框架,spring给我们整合一整套行业解决方案,很多都是基于springboot,比如springcloud等。集成起来特别方便。对于springboot,我们要了解和熟悉怎么去装配第三方模块的,怎么去自定义一个模块starter,怎么做到自启动加载等。

阶段一:单体项目

第一阶段,搭建单体项目。这阶段应该也算是java基础了,很多都是现在企业通用的框架组合,比如spring+mybatis,接口文档swagger2,实体验证hibernate validator,搜索引擎lucene等等。然后部署环境centos7、代码管理git、持续部署git。

emmm~不熟悉的同学要多学习一下啦,基本的东西~

阶段二:物理分离应用和数据库

物理上将应用服务器与数据库进行分离,这样cpu、内存等压力就没这么大。

阶段三:缓存化、静态化

这里有一些通用的模板静态化基础,比如freemaker或者velocity等模板引擎的,现在很多代码生成的框架其实原理就是使用模板静态化的技术,定义好模板之后再传参渲染,就生成了想要的代码。

这里nginx适合作为我们的静态文件服务器,后面的动静分离就是使用了nginx。

阶段四:应用负载均衡,集群

nginx可以作为反向代理服务器,所以可以作为我们的负载均衡工具,这里还涉及到负载均衡的策略,比如轮询,权重等,需要弄懂。一般来说,nginx是主流,其他apache用得都比较少了。nginx还有一些上线技巧,比如蓝绿部署、灰度部署等。

  • 蓝绿部署

一种可以保证系统在不间断提供服务的情况下上线的部署方式

  • 灰度发布

指在黑与白之间,能够平滑过渡的一种发布方式

负载均衡(Load Balance) 其意思就是分摊到多个操作单元上进行执行,例如Web 服务器 、 FTP服务器 、 企业 关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

应用服务器负载均衡之后需要解决的第一个问题就是会话同步(session),常用的框架就是spring session、shiro-redis等。以及缓存中间的选用上,一般不用ehcache,选用redis较多。

当然,因为用到了nginx作为反向代理工具,所有nginx需要做高可用配置,常见是keepalived+nginx组合。

阶段五:动静分离

常说的动静分离解决方案一般都是把静态文件部署到nginx等文件服务器中,减少应用服务器的请求压力,这里还有个CDN的概念,大家要了解一下流程是怎么样的,毕竟现在常说cdn、cdn、cdn啥的,不懂就插不上嘴呀~

一般我们存储静态东西都喜欢使用云存储,所有七牛云,cos等云存储我们就经常使用到了。当然了,nginx也是动静分离的主要工具,因为一些css、js等文件一般放在nginx下。

阶段六:分布式缓存、缓存集群

这一阶段主要还是把缓存用到极致,重复利用redis的五大数据结构的优势去调整我们的数据显示,另外设计到的缓存问题比如缓存穿透、缓存雪崩、缓存击穿等概念要熟悉,还有解决方案。以及搭建redis的主从集群、哨兵等机制保证redis的高可用。

当然了,运用了缓存之后,有个比较重点的问题也诞生了,就是如何保证缓存与数据库的数据保存一致!

阶段七:读写分离、分库分表

阶段七中主要还是集中读写分离、分库分表,围绕着不同数据库之间的相互协调工作。

读写分离

读写分离也可以有很多种方式,当然了,最常见的还是使用继承AbstractRoutingDataSource,重写determineTargetDataSource()方法。还有其他方式吗?给大家科普一下,可以针对spring、mybatis展开:

spring

1、通过扫描包区分不同数据源

@MapperScan注解扫描不同的包,该包下的所有mapper使用同一数据源,主要是sqlSessionTemplateRef属性 可以看下这篇文章:https://www.cnblogs.com/kangoroo/p/7133543.html

2、通过注解区分

通过继承AbstractRoutingDataSource,重写determineTargetDataSource()指定数据源的方法。最常用手段,必须懂!实例:renren-fast开源项目

mybatis

1、拦截发起操作的方法名

需要自己约定增删改查的前缀,然后根据前缀选择数据源!

2、拦截发起操作的sql

通过拦截mysql的执行方法获取sql,通过sql来判断读写 实例:https://github.com/shawntime/shawn-rwdb

分库分表

mycat: 基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库

shareding-jdbc: 基于 JDBC 接口的扩展,是以 jar 包的形式提供轻量级服务的

这里面就衍生处理很多问题,同时也诞生了很多解决方案,比如分布式事务,分布式锁等

  • 分布式事务CAP定理

  1. 一致性(Consistency) :客户端知道一系列的操作都会同时发生(生效)

  2. 可用性(Availability) :每个操作都必须以可预期的响应结束

  3. 分区容错性(Partition tolerance) :即使出现单个组件无法可用,操作依然可以完成

  • 分布式事务BASE定理

  1. Basically Available(基本可用)

  2. Soft state(软状态)

  3. Eventually consistent(最终一致性)

无法做到强一致,但每个应用都可以根据自身的业务特点

采用适当的方式来使系统达到最终一致性

  • 分布式锁

    • redis锁

      • redis+lua

      • redisson

    • zookeeper锁

  • 分布式唯一主键ID

    • UUID

    • redis自增ID

阶段八:微服务架构

现在rpc的解决方案主要有两个体系

  • 阿里体系dubbo+zookeeper

  • spring体系springcloud

在springcloud中常用的组件之间的整合关系已经解决的对应的问题需要去熟悉和学会综合运用

  • 注册中心Eureka

  • 客户端负载均衡Ribbon

  • 声明式Rest调用Feign

  • 容错处理Hystrix

  • 服务网关Zuul

  • 统一管理配置Config

  • 服务跟踪Sleuth+zipkin

还有服务拆分之后带来的一系列问题,比如为了达到高可用而需要解决的降级、超时重试、限流等。为了高并发而引入的消息队列、缓存、异步并发等技术都需要了解。

阶段九:NoSql与分布式搜索引擎

这里的一个重点就是我们的分布式搜索引擎了,在前面我们聊过lucene,而es、solr的底层其实都是lucene。所以我们对lucene的底层实现原理要熟悉(倒排索引),还要分词等概念。同时在es与数据库之间的数据同步问题,我们可以使用三种解决方案

  • 基于cannal实现同步

  • 基于消息队列实现同步

  • 基于logstash实现同步

同时,不管es,还是mongo,这些nosql数据存储,都会有分片的概念,需要了解其高可用以及备份等原理。

B站视频讲解

目前,已经录制了视频(共150分钟左右),讲解这九大阶段中会涉及到的内容,并做了一些较详细的分析,感兴趣的同学可以去去B站看下,来个点赞、弹幕、收藏三连发哈!感谢支持

链接:https://www.bilibili.com/video/av80313108

可点击阅读原文直接打开!(用app或者pc端打开才高清!)

结束语

好了,今天粗粗总结了一下内容,只需要有个概念,每个阶段涉及到的要点都是非常多的,大家可以针对某个点进入深入学习哈。我是吕一明,感谢阅读,欢迎来B站一起弹幕学习哈!

推荐一个公众号

MarkerHub

主分析开源项目,以及导图梳理Java知识点!

点击阅读原文看B站的视频讲解

前端跨域问题解析与九大解决方案实践 跨域问题是前端开发中的常见挑战,主要由浏览器的同源策略(Same-Origin Policy)引起。同源策略是一种安全机制,限制不同源(协议、域名、端口)之间的资源访问,以防止恶意网站窃取用户数据。现代Web开发中,跨域资源共享(CORS)是官方推荐的解决方案,通过服务器设置响应头来允许跨域请求。此外,JSONP、代理服务器、Nginx反向代理等技术也广泛应用于不同场景。理解这些技术的原理和应用场景,能够帮助开发者高效解决跨域问题,提升Web应用的安全性和用户体验。本文深入解析跨域问题的本质,并提供九种实用 阅读详情

相关推荐

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析

本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。

weixin_26965807的博客 237

网站发展九大阶段及知识梳理

网站发展九大阶段及知识梳理

私信可回答各种问题~ 1352

S32K144驱动TPS929120避坑实录:从原理图设计到PWM调光漏电流的完整解决流程

本文详细解析了S32K144驱动TPS929120在车规LED驱动中的常见问题与解决方案,重点解决了PWM调光漏电流的行业难题。从原理图设计、FlexWire通信到软件调试,提供了一套完整的工程化避坑指南,特别针对车规MCU应用中的温度漂移、地址冲突等痛点给出了实用建议。

weixin_30872157的博客 561

Web发展史

Web(万维网)的发展史是一段充满创新与变革的旅程,它极大地改变了人们获取信息、交流沟通和进行商业活动的方式。

Flask Web 2338

零中频接收机实战:DC Offset的5种常见解决方案与调试技巧

本文针对零中频接收机中DC Offset这一核心挑战,深入剖析了其产生机理与对信号解调的严重影响。文章从实战角度出发,系统性地介绍了五种解决方案,包括硬件预防、数字域校正、I/Q不平衡联合校正等,并分享了关键的实验室调试与产线测试技巧,旨在帮助射频工程师有效提升接收机性能。

weixin_29234509的博客 400

Unity游戏开发客户端面经——数据结构(初级)

Unity游戏开发客户端面经 之 数据结构篇

Sea3752的博客 1万+

网站发展历程

网站架构发展历程 初始网站,应用程序,文件还有数据库在一台服务器上。 随着网站业务的发展,一台服务器已经不能满足需求,性能越来越差,储存空间越来越不足。这时候需要应用和数据分离。三者独自拥有了自己的服务器。 服务器的扩展 负载调度服务器进行调度,合理的给请求分配服务器 读写分离示意图 网络提供商为电信移动等通信类公司,因为它们的设备遍布各地,方便用户的访问。 ...

weixin_44791884的博客 1080

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9811

web开发发展历程-前端、后端、消息队列、后端架构演进

在学习web开发时,面对的总是一个一个技术,这让我感觉很割裂,不踏实。因此,我想了解web开发的发展历程,通过不同历史时期技术上、需求上的变化,更好的把握核心。

hands_up_down的博客 2150

海康视觉脚本开发全流程解析

本文详细解析了海康机器视觉平台(VM)中脚本模块的开发全流程。从创建第一个脚本模块入手,深入讲解了输入参数、输出参数与内部变量的定义与区别,并提供了C#脚本编写、公用函数调用、代码结构组织以及编译调试的实用指南。旨在帮助开发者掌握海康视觉脚本开发的核心技巧,高效实现复杂的自定义视觉逻辑处理。

beer8的博客 603

药物不良反应预测实战指南:从FAERS数据挖掘到PyTorch深度学习模型(含可解释性分析)

【代码】药物不良反应预测实战指南:从FAERS数据挖掘到PyTorch深度学习模型(含可解释性分析)

理论都是虚的,代码才是王道。 723

网站的演变

大型网站都是从小型网站逐渐发展而来的,网站的价值在于它所做的事情有什么价值,而不在于它是怎么实现的,网站的架构之路并非在网站刚开始创建时就已经设定成熟,而是根据日后网站的需求一步一步完善架构。      驱动网站架构之路的是网站业务的发展,不是所有的网站架构都是相同的,最好的架构是根据自身业务量身定做而成的,这也是网站演变的根源所在。

ZhangBlogs 的博客 596

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 989

网站架构模式核心要素梳理

本文系统梳理了大型网站架构设计的9种核心模式:分层(横向职责切分)、分割(纵向业务拆分)、分布式(模块独立部署)、集群(多实例协同)、缓存(多级加速)、异步(流程解耦)、冗余(高可用保障)、自动化(高效运维)和安全(防护体系)。这些模式相互配合,形成可扩展、高可用、高性能的架构体系。文章强调优秀架构是动态演进的过程,需要在当前需求与未来发展间取得平衡,以合理成本解决核心问题。全文为网站架构设计提供了清晰的方法论指导。

bugcome的博客 807

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Kali Linux 渗透测试学习路径指南:九大阶段解锁全栈工具技能

文章按照渗透测试的九个核心阶段(信息收集→漏洞扫描→漏洞利用→密码攻击→无线攻击→嗅探欺骗→后渗透→逆向工程→社会工程学),系统梳理了各阶段的主流工具及其功能定位,如nmap、Metasploit、BurpSuite、Mimikatz等。同时提供了分阶段的学习路径建议和合法靶场环境搭建方案,适合安全初学者系统建立知识框架,也适合从业者作为工具手册查阅。全文强调:所有技术仅限授权测试,严禁非法使用。

2601_95262259的博客 1018

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

攻防九大举措助力防守队应对网络攻击“七十二变”

除常规武器外,防守队还应针对重点目标进行重点加固,以防“漏网之鱼”。

2401_84215240的博客 1338

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

熬夜30天吃透这九大Java核心专题,我收割了3个大厂offer

以上整理的这九大核心点,希望同为开发人员的你,也能静下心来用心去学习,如果你同样以大厂为目标,只要能坚持,相信进大厂只是时间上的问题。

m0_46995061的博客 167

零基础构建Web渗透九大模块知识体系:从原理到实战

Web安全攻防本质上是攻防双方的持续博弈,其核心在于对计算机系统构建与保护机制的深刻理解。从基础原理层面看,这要求掌握扎实的计算机与网络基础,包括操作系统、网络协议(如HTTP/HTTPS)及Web应用运行逻辑。这些基础构成了识别与利用安全漏洞的技术基石,其价值在于将散乱的知识点系统化,形成可指导实战的工程化思维。在应用场景上,无论是进行渗透测试、漏洞挖掘还是安全防护,一个完整的知识体系都至关重要。本文以【SQL注入】和【XSS(跨站脚本攻击)】等经典漏洞为例,通过九大模块的框架,系统性地阐述了从信息收集、

weixin_28716443的博客 246

九大核心专题,630页内容,熬夜23天吃透,我收割了3个大厂offer

当我们的网站规模比较大时,这个时候,需要考虑的就非常非常多了,就需要各种各样的优化了,例如缓存,分库分表,负载均衡等等,关于网站规模这个问题,其实我也被问过几次,例如我们平时逛知乎时,有时候某个问题会非常热门,一下子上亿热度,面对这种问题,我们会如何出来?MySQL就更不用多说了,数据库不问基本上是不可能的,尤其是现在的互联网公司,基本都是用的MySQL,MySQL问得最多的自然就是索引、锁以及优化方式,当然还可能会问你一些命令,例如查看sql的执行计划,引擎之间的区别,自增主键优缺点,B+树等。

m0_63437643的博客 120

肝了 23 天吃透九大核心专题,我收割了 6 个 Java 岗 offer!

对于应届生和工作经验不足的开发小白来说,计算机网络相关的内容是问得比较多的,尤其是涉及到的协议特别多,如 http,https,tcp,udp,arp,icmp,三次握手四次挥手等等。在大厂面试中,计算机网络是属于必问的,那么想要搞定这一部分,需要学习些什么呢?

weixin_64314555的博客 129

【JavaWeb超全思维导图】零基础入门知识体系一览无余

马上迎来中秋国庆双节,写了一个节日主题的简易许愿墙网页 Demo。使用 HTML 搭建页面结构,CSS 做节日渐变配色,原生 JS 实现添加、删除心愿卡片。没有后端,纯前端实现。

l25061008的博客 274

2026 年九大最佳开源 Web 服务器盘点

2026 年九大最佳开源 Web 服务器盘点

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 2055

【推荐】这9个 Python 初学者网站值得收藏

大家好,今天给大家梳理一下知乎高赞的 Python 做题类网站,喜欢本文记得点赞、收藏、关注。 【注】文末提供技术交流群 推荐文章 李宏毅《机器学习》国语课程(2022)来了 有人把吴恩达老师的机器学习和深度学习做成了中文版 上瘾了,最近又给公司撸了一个可视化大屏(附源码) 如此优雅,4款 Python 自动数据分析神器真香啊 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学 年终汇总:20份可视化大屏模板,直接套用真香(文末附源码) 1. LeetCode Leet

Python学习与数据挖掘 2083
上一篇: 年后跳槽,你需要准备这些!
下一篇: 面试官:你简历中写用过 Docker,能说说容器和镜像的区别吗?
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值