本章节会通过最基础的项目构建,使用最新版Springboot3.x构建项目,我们会通过这个项目的各个接口来逐步进行架构的演变,一步一步提升接口的性能以及并发量。受限会进行基础环境的讲解配置,随后从零搭建项目。再结合数据库以及mybatis来构建持久层。当基础环境都准备完毕后,结合springboot的rest接口来开发基础的增删改查供外部调用。
由于接口查询每次都会和数据库交互,但数据库中数据并没有发生变化,所以我们会通过结合本地缓存Caffeine来提升接口的访问性能,如此可以优化接口的qps,提升用户的访问体验。
本地缓存Caffeine虽然可以提升接口的查询效率,但是在集群环境之下,本地缓存不能跨服务存在,所以可能会造成并发流量直接命中数据库而导致数据库宕机从而引起整个系统的崩溃,为了解决这样问题,我们引入分布式缓存中间件Redis,如此请求进来的时候如果本地缓存不存在,那么则可以直接从Redis中查询,如此一来,相当于为系统增加了第二道防线,降低系统崩溃的风险。
使用分布式缓存Redis并不是安装了直接就能用的,我们需要结合到自身的项目以及框架一起来为整个系统平台提供服务,如此就能体验redis的美妙之处,本章节会通过构建Springboot集群来理解本地缓存的不足,通过Redis与项目框架的集成,如此可以做到为数据库提供两道门神。
前面的章节我们实现了项目与缓存的集成,但是目前我们确实一道项目的入口,真正的请求进来并不是直接通过项目来进行接口调用的,我们需要为项目提供一道“门槛”,也就是“网关”,所以在本章节,我们会从零学习nginx这个服务器,通过学习后,我们可以把用户请求转发到项目,如此可以暴露自己项目的接口给外部用户访问。
本章节将会为网关集成Redis打好基础,因为此处需要编写服务器脚本,就像java那样,lua也是一门语言,redis的使用api的调用,都是通过lua来进行的,我们会从零手把手学会lua语言,从中可以体会原来服务脚本的开发并不难,并且可以做到举一反三。
前面学习了lua脚本,这为我们在openresty中集成使用lua脚本打好了良好的基础,所以在本章节,我们会学习openresty的相关内容,学习如何结合lua来获得用户的请求以及相关的参数,这在web请求与转发中将发挥强大的用处。
本章节我们会达成集群高可用的目的,当然集群与分布式的的概念会为大家做详细的梳理,让大家打消分布式与集群很难理解的顾虑,彻底的学会集群与负载均衡的构建与配置,不再为面试发愁。
本章节主要会结合之前的网关集群来打造多级缓存架构的最终落地形态,通过openresty与lua脚本的集成,从而快速提升系统的整体并发性能,来满足nginx的并发请求。
前面我们已经达成了多级缓存架构的落地,本章节我们会来完成最后的一个亮点,那就是数据同步功能,为了保证数据库修改后,可以同步到各个节点缓存,如此就需要借助于数据库同步工具canal,本章节会从零讲解canal这个强大的数据同步工具,并实现数据同步数据一致性的落地。
本章节会结合docker来实现云服务器的容器化部署,把前面章节中所有的相关中间件以及项目全部打包到docker,通过docker来容器化的管理起来,最终发布到外网,可以通过外部网络来访问我们的多级缓存架构项目。
选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题