高性能OpenResty与多级缓存架构
一个系统架构要支持高并发与高性能,那么必然会借助很多的资源以及中间件来共同配合实现。平时我们用的最多的是分布式缓存Redis,万金油中间件,性能很高,适用场景也很多,但是会受限与容器,springboot单个容器运行在tomcat中,而tomcat的并发也就150~200上下,可以支撑十几万并发的redis很显然在springboot应用中无法发挥到极致,哪怕多集群springboot,那么也有一定的资源开支。
而且,在微服务中,一个链路其实很长的,请求经过多个链路也会有资源性能的损耗,用户获得响应可能就有延迟,所以有时候会把请求的数据放到redis中并且前置,可以参考如下架构图。
图中有两个网关,一个是nginx,一个是openresty,其实openresty可以自己编写业务,控制业务成为一个业务网关集群,很多查询的操作其实放入到openresty中就行了,而openresty本身就是nginx的一个扩展,性能极高,可以结合redis,也可以集合mysql,扩展性极强。目前我们自己公司的高并发业务场景都是依托的openresty,我们自己的3节点集群可以达到千万级并发,日流水也是很高,支撑的场景是没问题的,所以这里也非常推荐大家可以去学习一下,对面试对项目经验也是有极大的帮助的。
目前老师也制作了和OpenResty相关的多级缓存架构课程,有兴趣的同学可以去关注一下,涉及到的主要技术栈如下:
- redis
- caffeine
- nginx
- openresty
- lua
- 集群、负载均衡
有兴趣的小伙伴可以点击原文链接瞧一瞧看一看~
https://coding.imooc.com/class/694.html