- 相关文章 (13)
- QBlog隐藏技巧 (2)
- 爱说说系列 (4)
- QBlog 开源发布 (3)
- QBlog版本发布 (8)
- QBlog 模板制作教程 (6)
- QBlog开发者视频教程 (6)
- 秋色园技术原理解析 (21)
- 啊哈
- スーパーコピーブランド専門ショップ時計 バッグ 財布N級品販売通販 全品送料無料!! 弊社は価値をつけてルイヴィトンを販売して、シャネル 、グッチなど。 ◆2018年は最も新型に人気があって、新しい素材の商品到着! 人気ブランド品大注目 ◆信用の第1、風格は多くて、品質は良いです! ◆運賃の無料(日本全国)が予約購入することを期待しています! ◆弊社の商品は絶対的な自信があります。 ぜひ、見てくださいね!! 海外スーパーコピーのスーパーコピー バッグ、アクセサリー スーパーコピー時計、貴金属の(リサイクル品)のスーパーコピー販売買取
- ルイヴィトン 財布スーパーコピー ようこそ ルイヴィトン スーパーコピー販売商店へいらっしゃいませ! 真心込めて最高 レベルのスーパーコピールイヴィトン偽物ブランド品をお届けしています。 安全税関対策+ 素早い配送+随時の在庫補給+丁寧な対応+スーパーコピー販売業界最低価格に挑戦 ! 当店は業界最高品質に挑戦!全商品はプロの目にも分からないルイヴィトン 財布スーパーコピーです。 ルイヴィトン財布コピー、ルイヴィトン 財布 ブランド偽物など世界 有名なバックコピー商品が満載! 当店のスーパーコピー商品は他店よりも質が高く、金額も安くなっております。 ご購入する度、ご安心とご満足の届けることを旨にしております よろしくお願いします ありがとうございます (*^__^*)
- 可以
- 不错,博主是大神,膜拜中
- 44
- 顶起来!一页文字,几载求索
- ACESS 我也是深恶痛绝,但还是不得不用
- 阿斯顿
- <label>上节回顾</label>
- 绑定一级域名(顶级域名)到秋色园QBlog博客教程(22749)
- 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)(22433)
- 秋色园QBlog技术原理解析:开篇:整体认识(一)(21285)
- 调查:是否支持秋色园QBlog走进开源博客之路(19983)
- Windows7下如何安装部署秋色园CYQBlog站点(15370)
- 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四)(14315)
- 开源博客-秋色园QBlog多用户博客系统安装视频教程(14065)
- 如何安装部署秋色园CYQBlog站点(13512)
- 秋色园QBlog技术原理解析:认识整站处理流程(二)(13317)
- 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七)(12991)
- 调查:是否支持秋色园QBlog走进开源博客之路(32)
- 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)(23)
- 秋色园QBlog技术原理解析:开篇:整体认识(一)(13)
- QBlog开发者视频教程:开篇-开发基础配置与系统运行(一)(13)
- CYQ.IIS 无需要安装IIS运行QBlog网站(13)
- Windows7下如何安装部署秋色园CYQBlog站点(12)
- 开源博客CYQ.Blog 秋色园QBlog 源码下载[免费开放24个下载码](11)
- 开源博客-秋色园QBlog多用户博客系统安装视频教程(10)
- 绑定一级域名(顶级域名)到秋色园QBlog博客教程(10)
- 如何安装部署秋色园CYQBlog站点(9)
上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中,
介绍了 Access的并发上限,及从某种程度上 秋色园QBlog 针对并发上限进行了多个数据的划分,从而最大并发上限从64提升到64*N(个数据库),虽然总和的最大并发值是上升了,但是单个库的最大值并没有变化,或者说单个表的最大并发值没有发生变化,上限仍是64。
于是,对于频繁产生更新操作的访问计数器(用户表及文章表),是该进入优化的方案了。
本节概要:
本节内容:
秋色园QBlog 原来的访问计数器策略:
1:获取缓存的计数器数数字。[用户取值缓存,文章取值页面上的数字]
2:根据Session或Cookie对每个用户在某时间段间只计一次访问的判断。
3:在获取的数字上,进行内存计数+1。
4:概率性直接更新到用户表和文章表中。
这种方案,会否产生黄金4K的ldb问题,取决于访问量和概率性问题,概率值设置的越低,越安全,但是如果内存回收很频繁,丢失数字也常见。
秋色园QBlog 新的访问计数器优化策略:
1:仍旧保留内存计数器+1的方式。
2:概率性更新,变成统一内置线程定时更新。
这样处理,原来概率性可能产生的并发更新问题,现在变成1个链接在更新,有效的减少黄金4K的问题。
3:为了减少丢失的概率,新开了数据库(qblogvisit.mdb)及数据表:
新开有两个表:Blog_UserVisit和Blog_ContentHit。
新开表的字段:ID和Hits
这个新库的两个表,加大了更新的频率,用于物理保存用户或文章的计数器,避免内存数字丢失的概率,当内存数字丢失时,先从这新表中取出原始数字,再进行+1,有效的减少数字丢失的问题。
PS:内置线程:是一件比较危险的事情,会产生比较想象还多的问题,需要全方位的处理可能产生的:并发,(应用程序池回收时)产生多个线程,异常等问题。
开启内置线程的代码:
静态页面动态显示计数器数字
首先:秋色园QBlog 的页面多数是静态化的*.html,可是你会发现文章的计数器,无论是首页,列表,还是文章页,都是变化的,如何将静态化的数字,动态的变化显示?
用js异步?no..秋色园QBlog整站是无js的,如果有js,应该会是另一种实现方式。
然后:由于URLRewrite遇到请求时并非直接转向*.html,而是全转向*.ashx,再加载*.html方式,使的后台程序可以对静态化的html进行二次处理。
其实:如果你看过本系列的文章,应该会发现一个:Page_OnCache的生命周期,就是在这里动的手脚。
因此:只要获取列表上的数字,然后再从内存中寻找有没有相应的数字,有则更新。
结果:这样访问计数器的数字就是动态时时显示了。
显示动态数字的代码:
总结
本节通过将频繁产生数据库交互动作的计数器部分,变成单线程的更新,有效的解决了黄金4K问题。
同时为了减少数字丢失的概率,增加了新的数据库来物理存储文章的数字,但是不改变原有表的结构。
结果:在计数器这块,目前问题算是解决了。
但是,黄金4K的问题,并没有结束,因为,除了写操作,更多的是读取操作。
正如上节所说:
CYQ.Data 用Lock锁住插入/更新/删除,这些步骤,使的同一时间只出现一个链接打开。
但是,通过上节的示例,发现了,读取,也是要打开链接的。
因此,优化仍没有止步,本系列仍在继续,请继续关注。
下一篇:秋色园QBlog技术原理解析:性能优化篇:读写分离与文本数据库(十八)
历史文章回顾:
1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用
2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程
3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL
4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序
5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期
6: 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六) --介绍基类生命周期内部业务
7: 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理
8: 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八) --介绍html的内容是如何填充
9: 秋色园QBlog技术原理解析:独创的多语言翻译机制(九) --介绍html多语言翻译原理
10:秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十) --总结演示示例代码
11:秋色园QBlog技术原理解析:页面Post提交机制(十一) --介绍如果Post提交数据
12:秋色园QBlog技术原理解析:性能优化篇:字节与缓存与并发(十二) --介绍性能优化:字节,并发及缓存
13:秋色园QBlog技术原理解析:性能优化篇:全局的SQL语句优化(十三) --介绍全局掌握SQL,进行针对性优化
14 :秋色园QBlog技术原理解析:性能优化篇:缓存总有失效时,构造持续的缓存方案(十四) --介绍二次缓存方案
15:秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五) --介绍内容分库减压
16:秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) --介绍access并发上限
附章:
1:秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理
PS:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427