为什么要进行页面静态化

从搜索这里可以看出,搜索列表展示的是固定30条数据,搜索的访问量已经很巨大了,那么详情页面的访问量是30倍的搜索量,如果放在整个百万级的用户量上来说,这个访问量是很巨大的,所以我们就不能每次访问详情页面的时候,都去服务端请求数据再展示

其次是这个详情页面来说,不会经常频繁的变动,所以每次去服务端取的数据基本都是一致的,所以我们就得想办法去解决如何快速的响应这么高的访问量

我们项目中服务端的请求和前端的请求,都是通过nginx做的反向代理,那么我们在项目中的方案是基于两个点去解决的,首先呢是结合模版引擎技术,用户在首次访问某个数据的详情页的时候,我们使用thymeleaf给生成静态页面,响应给用户,同时放到指定的nginx代理的目录下,那么用户在第二次访问这个数据详情页是,通过nginx中的配置,nginx首先会去该目录下查看是否有这个数据静态页面存在,如果存在的话,直接就访问静态html文件了,如果不存在,才会放行到我们微服务里去请求数据。

然后在线上的时候,会结合CDN技术,同时指向nginx代理的静态页面的路径,进一步提高用户的访问速度。

在生成静态页面的同时会造成一个问题,就是数据库的数据修改之后,需要同步到静态页面中去,这里我们采用的是rabbitmq做的异步处理,在数据库数据修改之后,通过mq发送消息,静态化的微服务收到消息之后,会重新生成一遍html页面,这样就会跟数据库的数据同步了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值