最近花了三天,写了秋色园的另一个频道,“爱说说”频道:http://speak.cyqdata.com/。
今天把“爱说说”的起源及技术方案的选型过程及想法给大伙说说
一:爱说说是什么?
说白了也没什么什么,可以说是微博、闪存、聊天室,什么都可以说。
二:爱说说的起源?
说要写“爱说说”,最直白的冲动是在博客园闪存闪多了,突然也闪出这么个名词,所以打算随意的折腾一下,于是就出来了。
三:爱说说的技术方案
1:回想往惜做过类似的:
1:在校的时候学习,都学着用Application来存聊天室的内容。
2:刚工作的时候,学到了内存表DataTable来存聊天室的内容。
3:工作有点久的时候,写一个webim[设计人员设计了和msn一样的界面],同样有群的功能,技术方案是内存表DataTable+数据库存储的方案。
博客园的闪存技术方案:
2:爱说说的技术方案:
秋色园爱说说的技术方案[开始的方案]:
随着秋色园的向前优化,CYQ.Data不断的升级,MDataTable不断的优化。
于是很容易定位了一下爱说说的技术方案:
内存表MDataTable+XML
理由:
没什么特别,因为最近给CYQ.Data的MDataTable增加了WriteXml和ReadXml功能,
想着刚好能应用上。
秋色园爱说说的技术方案[现在的方案]:
理由:
3:方案的说法
用TXT文本来来当存储介质,这是一个比较有创意的想法,当然有很多人似乎要否定TXT,甚者有人说:“从前,有个PHP的论坛,用的是TXT做为数据库,后来它消失了”。
如果让我做论坛,我也不会选TXT做为存储介质,原因当然是论坛和“爱说说”是不一样的。
爱说说本身并没有多复杂的逻辑,也不会并生多大的数据量,说什么微博数据量大,你不是新浪腾讯或是搜狐的,瞎扯上这么高级别的数据量了,不现实,
再说数据量这么大,肯定是有米的,有米的都喜欢自己写一套的,写多几套也不是问题。
事实上,我看了一下博客园,平均一天就闪1000条,我用TXT测试到1万条,读取仍然很快。
所以完全不用担心,上升到2万3万10万呢,你说呢?
4:为啥不用Sqlite,好多人说用这个
简单想了一下,当初秋色园Access才并发了几十个写操作,就挂了,[大石头]传说[Access25个并发最多],SQLite在写这方面,也不太乐观,所以不考虑,为啥不考虑?
一开始的考虑本意是这样的:用户说过来的消息,然后集中到内存中,再定时的写数据。
后来想了想,不靠谱,因为内存回收是常有的事,不是数据得经常性的丢么,说句有的没的,大伙说的也没劲。
所以数据还是需要时时写的,所以用这种小型数据库没法支持这么大的并发写数据问题,所以,好像大伙都懂了。
于是用TXT文本,用Ajax循环发送1000条请求写数据,发现很安稳,安心了。
5:用TXT肯定是会遇到一些技术问题的
这些技术问题,这本不说先,下一篇为大伙解析,欢迎大伙留言爱说说。
四:爱说说的前台界面的设想
1:需要前端再设计,当前的界面是我瞎折腾的,不太成型,重新设计是必然。
2:JS前端,本人JS能力不及,兼容不了多浏览器,待再找个高手重写一下。
3:咋不用JQ?好多人问我:一是JQ的包大了点,二是比较重要的,我不会JQ,汗一个。
4:功能:还少很多,比如注册用户,及相关的查询,按日期的显示,“更多”的查询等。
5:目前js写的比较差,有时候会卡,这个得赶紧优化下。
最后本节就先写到这了,欢迎大伙乱弹弹。