(一)高并发redis学习笔记:小电商网站架构与高并发架构区别

news/2024/5/20 23:22:26/文章来源:https://blog.csdn.net/Aphysia/article/details/89736463

主要的知识:
redis集群+storm集群+nginx+tomcat+mysql

真正能支撑高并发以及高可用的复杂系统中的缓存架构有哪些东西?

(1)如何让redis集群支撑几十万QPS高并发+99.99%高可用+TB级海量数据+企业级数据备份与恢复?:redis企业级集群架构

(2)如何支撑高性能以及高并发到极致?同时给缓存架构最后的安全保护层?:(nginx+lua)+redis+ehcache的三级缓存架构

(3)高并发场景下,如何解决数据库与缓存双写的时候数据不一致的情况?:企业级的完美的数据库+缓存双写一致性解决方案

(4)如何解决大value缓存的全量更新效率低下问题?:缓存维度化拆分解决方案

(5)如何将缓存命中率提升到极致?:双层nginx部署架构,以及lua脚本实现的一致性hash流量分发策略

(6)如何解决高并发场景下,缓存重建时的分布式并发重建的冲突问题?:基于zookeeper分布式锁的缓存并发重建解决方案

(7)如何解决高并发场景下,缓存冷启动MySQL瞬间被打死的问题?:基于storm实时统计热数据的分布式快速缓存预热解决方案

(8)如何解决热点缓存导致单机器负载瞬间超高?:基于storm的实时热点发现,以及毫秒级的实时热点缓存负载均衡降级

(9)如何解决分布式系统中的服务高可用问题?避免多层服务依赖因为少量故障导致系统崩溃?:基于hystrix的高可用缓存服务,资源隔离+限流+降级+熔断+超时控制

(10)如何应用分布式系统中的高可用服务的高阶技术?:基于hystrix的容错+多级降级+手动降级+生产环境参数优化经验+可视化运维与监控

(11)如何解决恐怖的缓存雪崩问题?避免给公司带来巨大的经济损失?:独家的事前+事中+事后三层次完美解决方案

(12)如何解决高并发场景下的缓存穿透问题?避免给MySQL带来过大的压力?:缓存穿透解决方案

(13)如何解决高并发场景下的缓存失效问题?避免给redis集群带来过大的压力?缓存失效解决方案

一些感悟

像老师所言,redis,memcached,activemq等等很多技术,如果只会简单的操作,其实是很吃亏的,起码我们需要想明白几个问题:
1.我们为什么要用这个东西?(这个真的很重要,但是好像以前学习的时候,没有去想)
2.我们应该在什么场景下使用这个东西,应该怎么使用
3.这个东西是怎么解决我们面对的问题的(内部是怎么实现的)
4.学了之后怎么用,企业级的系统怎么结合知识去实践

小型电商网站的架构以及瓶颈

小型电商如果使用页面静态化的架构:
如果模板改变了,如果是全量渲染,那么需要重新把所有的数据都渲染一遍,生成html,这样工作量会特别大。
如果不是全量渲染,那么来一个渲染一个再返回,假设请求量突然增加,那么就会导致网站请求超时。
AfS4US.md.png
页面静态化:利用动态技术生成HTML页面,来一个请求,返回一个页面(已经渲染好),这样的好处是:
1.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
2.有利于搜索引擎优化SEO
3.减少服务器的负担,浏览网页不需要调用系统的数据库服务器。
4.网站更加安全,减少注入的可能性。

缺点当然也有:
1.交互性差,功能上有所限制
2.占用硬盘资源
3.不是很灵活,静态化需要开关,这个需要专门设计。

页面少的时候,可以使用上面这一套,但是如果页面很多,上亿的量,一个模板修改,重新渲染消耗太多时间。

大电商网站的系统架构

从最左边开始,各种服务可能最底层直接依赖了mysql,如果这些服务的数据有变更,那么就直接写到MQ消息队列中。
数据缓存生产服务监听MQ,不断更新缓存的数据。这个数据缓存生产服务可能会使用ehcache等。这个ehcache会把数据放到redis中,到这里就结束了。这样ehcache,redis就会一直保持着最新的数据,与数据库同步。特殊情况ehcache也会去直接查询数据库。

监听MQ,能及时监听到修改,更新ehcache,更新到redis。缓存的数据需要设置过期时间。

前端如果有访问nginx去本地缓存中查询数据,填充到模板中返回。
如果缓存中没有,会去redis查询缓存,查到了写一份本地缓存,渲染模板,返回。
但是如果redis也没有,怎么办?nginx直接去查询ehcache,查询到之后,写一份到redis,写到本地缓存,填充,返回。

Af9mwV.png
如果html模板变了,那么不需要全部都渲染,只需要将模板放到nginx服务器上就可以了,因为这样直接用缓存是很快的,来一个渲染一个。没有网络的开销,没有业务逻辑,渲染到模板中,html页面返回。

两者的区别

小电商由于没有缓存服务,那么不可能每一个请求来之后,再去查询数据库,查到数据之后再渲染得到模板,这样的话业务处理,网络开销很费时间。但是如果采取全量渲染的话,量多的情况下就需要渲染很长时间。
大电商结构,采取缓存,相当于加了很多中间层,缓存的速度是特别快的,所以就不需要全量渲染,所以应该保证数据的新鲜度就就可以了。所以在中间用了ehcache和redis等。
感觉有点像计算机系统的设计结构(不够快,加一层)

高并发

同一时间数量极大的访问量。
QPS:每秒钟的请求量(Query Per Second)

高可用性

网站能够回应访问,正常运行,就是可用状态,各种宕机,服务器挂了,就是不可用状态。
99.99%可用性就是:一年365天中,有99.99%的时间是可用的。

注:主要来自中华石衫课程学习笔记

此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780735.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置ISA Server以创建站点到站点*** 连接之二(接续之一)

在本练习中,您将对两个 ISAServer 阵列进行配置以创建站点到站点 *** 连接。注意:本实验室练习使用以下计算机:Denver - Florence - Berlin - Istanbul 注意:在以下任务中,您将配置 GERMANY 阵列以使用站点到站点 *** …

PHP网站头部通栏设计

1.把网站添加到桌面&#xff1a; <a href"shortcut.php">放到桌面上</a> <?PHP$Shortcut "[InternetShortcut]URLhttp://www.xxx.comIDListIconFilehttp://www.xxx.com/favicon.ico//图标IconIndex1[{000214A0-0000-0000-C000-000000000046}]P…

如何更有效使用 Rational AppScan 扫描大型网站,第 1 部分: 工作原理及技术分析...

近来看到AppScan的技术介绍&#xff0c;感觉不错&#xff0c;与同行分享。 Rational AppScan&#xff08;简称 AppScan&#xff09;其实是一个产品家族&#xff0c;包括众多的应用安全扫描产品&#xff0c;从开发阶段的源代码扫描的 AppScan source edition&#xff0c;到针对 …

黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)

自从Discuz被腾讯这头大牛收购后的确越来越强大了&#xff0c;云平台是最大的亮点&#xff0c;但是Discuz X2.0在伪静态方面仍然非常不尽人意。目前世面主流的论坛程序phpwind和Discuz都无法做到全站完美伪静态&#xff0c;这对SEO影响很大&#xff0c;如果网站的权重不够高&am…

22个优秀的网站后台模板

22个优秀的网站后台模板 2011年09月3日 发布在 设计 由ding 留下评论不错的后台模版&#xff0c;不过&#xff0c;需要自己去汉化。这个应该问题不大。 还有&#xff0c;看模版的话&#xff0c;建议用火狐或chrome。外国网站一向不是很兼容ie6的&#xff0c;你懂的。 1&a…

PrestaShop加速11招立刻加速PrestaShop外贸电子商务网站无额外插件

2019独角兽企业重金招聘Python工程师标准>>> 自从PrestaShop进入1.4时代&#xff0c;我们会发现PrestaShop越来越慢了&#xff01;比如你用的是justhost空间总会收到服务商提示你cpu超负荷的邮件&#xff0c;最后你的PrestaShop VPS被关闭了&#xff01; 今天&#…

推荐10个堪称神器的学习网站

天一早做了个恶梦&#xff0c;梦到被老板辞退了。虽然说在我们公司&#xff0c;只有我辞退老板的份&#xff0c;没有老板辞退我这一说&#xff0c;但是还是被吓得 4 点多都起来了。&#xff08;主要是因为我掌握着公司所有的核心源码&#xff0c;哈哈哈&#xff09; 既然 4 点…

发布网站详细步骤(.Net)

&#xff08;i&#xff09;打开需要发布的网站 右键需要发布的项目 点击下拉框新建配置文件&#xff0c;输入配置文件名称&#xff0c;点击确定&#xff0c;下一步 发布方法选文件系统&#xff0c;目标位置&#xff1a;项目的根目录 配置选Release 点击发布 &#xff08;ii&…

linux查看某软件是否运行,linux如何查看某个软件是否安装_网站服务器运行维护...

linux中如何重命名文件_网站服务器运行维护linux中重命名文件的方法&#xff1a;可以使用mv命令来重命名文件&#xff0c;具体用法为【mv 源文件名 目标文件名】。例如【mv aaa bbb】&#xff0c;表示将aaa文件重命名为bbb。linux有多种方式安装软件&#xff0c;查看某个软件是…

静态网站托管_MQ

静态网站托管_MQ 1、安装surge npm install --global surge2、将需要部署的静态网页放到一个文件夹 3、命令行进入到该文件夹下&#xff0c;执行surge命令 surge4、然后一直根据提示注册账号和设置密码&#xff0c;使劲敲回车回车&#xff0c;知道完成生成域名&#xff1b;然…

[转载]网站地址栏小图标favicon.ico的制作方法

有人也许会好奇&#xff0c;有的网址前面有个漂亮的小图标而且有的网站图标还会动&#xff0c;这是怎么做到的呢&#xff1f; 如下图所示&#xff1a; 那个小图标有个名字叫favicon.ico&#xff0c;网站图标虽小但可以起到很好的点缀作用&#xff0c;尤其是当浏览者将你的网站放…

一个引号导致1个小时网站打不开

咱们就说下这个例子&#xff0c;提醒广大开发在写SQL的时候一定要仔细&#xff01;当时情况是这样的&#xff0c;一个慢SQL把数据库CPU连接数跑满&#xff0c;由于并发压力大&#xff0c;CPU空闲瞬时为0&#xff0c;过一会机器被HANG死&#xff0c;连接不上。因涉及公司隐私问题…

java已被阻止因为它已过时_Win7系统访问网站提示Silverlight已被阻止因为它已过时怎么办...

在win7系统中自带有IE浏览器&#xff0c;很多用户都喜欢使用IE浏览器来访问一些网站&#xff0c;有时候会遇到提示Silverlight已被阻止因为它已过时需要更新的提示&#xff0c;这是怎么回事呢&#xff0c;现在随小编一起来看看Win7系统访问网站提示Silverlight已被阻止因为它已…

google快速翻译英文网站

查资料、访问英文网站&#xff0c;看不懂英语&#xff1b;使用翻译器、翻译网站等等又嫌太麻烦&#xff01; 直接、快速简单一键直接翻译英文网站所有内容&#xff1b; http://translate.google.com/translate?u网址 ‘网址’换成你要翻译的英文网站&#xff1b;直接把上面地址…

java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器

前台&#xff1a; 支持四套模版&#xff0c; 可以在后台切换系统介绍&#xff1a;1.网站后台采用主流的 SSM 框架 jsp JSTL&#xff0c;网站后台采用freemaker静态化模版引擎生成html2.因为是生成的html&#xff0c;所以访问速度快&#xff0c;轻便&#xff0c;对服务器负担小3…

服务器上无此文件自动转到404,网站服务器经常性出现404错误的解决方案

网络上浏览页面呈现的过错链接提示多种多样&#xff0c;呈现404notfound也算是一个很普遍的问题&#xff0c;信任上网族都遇到过该情况&#xff0c;当咱们翻开某网页时会呈现提示&#xff1a;404NotFound&#xff0c;看到该页面心境本就糟糕了&#xff0c;404notfound首要用于浏…

(其他)80个提升自我的网站,只收藏,但并不看系列.

转载于:https://www.cnblogs.com/historylyt/p/9165686.html

网站首页怎么总是php,页脚总是相同怎么办

页脚总是相同的解决办法&#xff1a;首先打开要设置页脚的文档&#xff1b;然后点击菜单栏中的【插入】选项&#xff0c;并选择【页脚】选项&#xff1b;接着依次点击菜单栏中的【页面布局】、【分隔符】选项&#xff1b;最后取消勾选【与上一节相同】选项即可。页脚总是相同的…

python爬取网页代码_爬取某网站写的python代码

代码如下&#xff1a; import requests from pyquery import PyQuery import re import os import csv import datetime """ 说明&#xff1a;该代码是专门为爬取http://www.kgtmall.com.cn/商品而设计的。 使用方法&#xff1a; 1、在本地提前安装好python3的环…

python 爬带端口的网站_Python爬虫之爬取情话网站并绘制词云

一、爬取网站1.分析目标网站首先我们需要分析目标网站的源代码分析html得知所有的情话都是在标签<div class”content”>下&#xff0c;而且一个<p>标签对应着一句情话。2.编写代码import bs4 import requests #摘要&#xff1a;根据传入的url&#xff0c;爬取网站…