blog重构(之域名)

个人认为blog开发中至关重要的是域名的解析
一个个性化域名可以给用户友好的访问方式,如果采用blog.domain.com/x?userid=11111这种方式访问从技术上是最简单的
但是用户很难记住他的一串访问地址
所以个性化域名是一个blog基本的需求
而个性化域名可以是二级域名(xxx.domain.com),三级域名(xxx.blog.domain.com)或者四级域名(blog.domain.com/xxx)
这三种方案都可以,而且各大blog服务提供商都有采用,比如著名的傻b博客提供商博客网(不要怪我骂它,我是它的老员工,真的真的很让人伤心)就采用二级域名
而163等则采用三级域名方案,sina则采用第三种方案
这三种方案各有优势,个人比较偏好后两种,因为第一种会造成用户占用服务提供商未来需要提供服务的域名,造成强制抢回二级域名(博客网就经常干这个事情)
现在绝大部分blog都是采用全部动态的方式,如果有大量资金可以购置服务器,这样当然好,可以给用户实时的数据,带来好的用户体验
但是现在绝大部分blog提供商所能提供的服务器都只有一、两台,却希望能够带来几十、几百万的pv,那只能做静态化,即把文章页做成html或者shtml形式由apache来访问
这样就需要对域名进行解析,以让服务器访问到正确的文件路径
对个性化域名的解析就是重中之重。

据说在windows或者linux操作系统中,某一文件夹下存储的文件或者文件夹的数量是有限制的(我在实际应用中没有遇到过,但理论来说应该这样)
为了避免出现某一文件夹下存储的文件或者文件夹的数量超过系统限制的问题,则需要对文件存储路径进行合理的拆分。
在koook blog系统中,用户的文件文件夹为按照用户唯一序列号拆分出来的
如某一用户唯一序列号为110011,则其存储文件夹路径为110/110/00/,这样避免了在根路径下文件夹或文件过多的问题。
但在实际使用中发现每一次访问blog,则apache或者java容器都需要到用户中心去取相应的用户唯一序列号来进行拆分,这样造成了运行效率低下。这个问题在我离职前
一直没有得到妥善的解决。这样的方案提高了开发门槛,即必须有linux 下c编程的人配合去开发apache的mode才可以,而且此人必须为资深工程师,懂得多线程开发才可以。

个人认为优化方案为:
1、对apache的mode进行简单开发,使其用正则表达式对个性化域名进行拆分,例如我的blog为http://blog.sina.com.cn/flyduck,那么我的存储地址为/f/l/y/d/u/c/k即可
但弊端为把个性化域名控制死,必须为几个字符,不能多也不能少。这样用户使用不是很自由,但是是最简单的使用办法
2、依然聘请c高手编写多线程共享内存的apache mode,把用户中心的用户基本信息一次load 到blog服务器中,每次请求apache都从共享内存中读取相应的数据,再按照规则进行拆分。
相对来说第二种是最优方案,但是开发成本也是最高的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值