开始我们的表演!!!
遇到的问题直接丢在评论里面
演员的自我修养之路---------
1.freemarker生成的静态化页面,如果商品的信息更改以后,会不会生成新的静态化化页面,freemarker静态化页面的数据是从哪里调用出来的,如果不是从数据里面掉的数据的,这个地方需要用到同步,和谁同步
答案:
1.如果商品信息更改以后,是需要生成新的静态化页面。(注意:淘淘商城中没有修改商品然后生成新的静态化页面的逻辑,实际中是需要这一部分逻辑的);
2.freemarker模块页面中的数据是在创建静态化页面的时候获取到的,那么这部分数据如果真采取淘淘商城中发mq去从数据库中查询,那也就不用担心这么多数据,从数据库中获取不是性能很慢。这个就不是本问题所涉及的了。如果不发mq也行啊,直接现存的数据为啥不行呢?
3.对于数据库高并发,缓解数据库查询压力,我们从业务设计角度分商品详情页面内容缓存和页面静态化处理两个维度去讲解。静态化页面是在商品新增或者修改的时候产生新的静态化页面。这个问题,是假设了商品数据放到某一个地方存起来,然后从存的地方取出来作为模板中的数据。这个设计我不敢苟同。设计上有漏洞,实现上没有一点优势。通过查看京东
商品的详情页,F12可以看到整个详情页面也是应用了静态化页面,通过nginx去找页面。
******************************************************************************************
2.如果数据库的信息更改以后,那么索引库和缓存库里面的信息是怎么更新的?不可能每次都去访问数据库吧。
a>该问题前提是商品详情页面如果采取的是缓存商品数据这种设计的话,那么当商品信息更改以后,索引和缓
存中数据更新同步逻辑在淘淘商城中设计是采取了发mq异步从数据库中查询的。如果从数据库中根据发mq发来
的商品主键id来查询数据库不是不可以。如果数据库查询很慢,性能很低,那么就设计到优化该逻辑的设计