枫林在线的老用户知道,这个BBS从2001年建站的时候起,就是web版的,没有经历过上
个世纪的经典BBS系统扩展支持web的发展阶段。同期,高校BBS的访问方式还是以Telnet为
主,当时很流行的一个客户端是Fterm。
曾经有一段时间,本站的一些用户,特别是那些用过Telnet方式的BBS的用户,对本站
支持Telnet方式的访问,提出了很大的期望。一种比较常见的观点是,只支持web方式的论
坛,会在对新用户的争取过程中,处于很大的劣势。
面对这种强烈的呼声,本站技术组在实现了通过cn.bbs.*与其它高校BBS进行转信之后
,曾提出过为本站开发Telnet访问功能的计划,并进行了一段时间的技术方案调研和前期实
验。但是,这个方案被验证为技术难度过大,被无限期搁置,并最终因为人员流动无法继续
投入而被完全放弃。
时隔二十年,大型的Web论坛经历过了大规模发展,达到巅峰,又纷纷衰败甚至倒闭的
过程,高校BBS的人气也是每况愈下,水木社区还在坚持提供Telnet方式的访问。
如果不考虑大环境造成的用户群体和使用习惯的变化,单纯从技术视角看,本站当年支
持telnet方式访问,是否可行呢?最近在对本站进行一系列重构和优化的时候,我又重新思
考了这个问题。答案是否定的。以目前的理解,我觉得至少会有几项巨大的技术挑战。
1、字符集的选择。早期中文软件,包括互联网产品,普遍使用GB2312/GBK编码。后来大部
分网站都使用UTF-8编码,百度也经历过这个切换过程。而经典BBS系统反而陷入了一个困境
。一方面其核心系统功能都是基于GBK/Big 5设计的,菜单项显示,文章编辑中的跨行折断
,这些都要考虑不同字符集中汉字字节长度差异导致的不同逻辑;另一方面其周边客户端是
只支持GBK/Big 5的。我不知道像Fterm这样的客户端还有没有人维护,至少我没有找到过后
来的更新版本。
2、系统架构的限制。经典BBS系统使用的是一体化的服务器端程序的设计,其数据读写和请
求响应处理是在单个程序内的(可以是多进程+进程间数据共享),而web论坛程序一般采用
分层设计,业务逻辑与数据存储是分离的,后者由专门的存储引擎(数据库、K-V存储等)
来处理。要让web论坛扩展支持Telnet方式,需要在服务端程序中自行实现数据缓存,来适
配查询速度较低的存储引擎,这一点对于文章显示应该是必需的。而这个工作的难度和复杂
度可能和从头实现一个经典BBS系统是相当的。
3、水平扩展能力。Web方式的论坛,因为其服务器程序的无状态化,可以很容易的实现水平
扩展,从而达到很高的吞吐响应能力,而不必像经典BBS系统那样需要限制文章总数。这一
点,参考百度贴吧的内容规模就知道了。对于经典BBS系统而言,要实现数据分片,是非常
难的,还是和它的架构有关系。
在知乎上看到有人问是不是应该回到Telnet BBS的模式,被评价为“开历史的倒车”。
我觉得这个评价虽然犀利,但是正确。
|