一个web抢答系统

上周日的IT特工向前冲活动举办完了。为了这个活动的一个问题抢答环节。我用了一周的时间弄了一个用于抢答的本地web网站。

从11月的10日,也即是高中的110周年校庆和参加Java省赛的同一天。直到上周日,11月18日。用了一周的时间,从无到有地把这个web网站建立。

这其实对我来说是一个很大胆的尝试。此前只曾做过一些后台的逻辑处理。没有摆弄过前端,服务器的任何东西。

开始的计划是前端使用jqury,后端采用Java Play!框架1.2.5版本。

后来在使用jqury的时候碰到了几个问题,琢磨之后咨询了一下博文。博文提议用Twitter Boostrap作为前端界面。对比之下发现Twitter Boostrap更方便快捷。于是就把前端改换为Twitter Boostrap。博文很热心,在开发的过程中也提供了很多的帮助并帮忙编写了对MySQL数据库的程序接口,真的十分感谢。

在这一周里面,我觉得过得非常充实,不断完善自己的作品,有需求有问题就上网google去,其中w3school提供了很多的帮助。之前没用过html,js,只会java,于是就看别人网站的代码,依葫芦画瓢一般慢慢理解代码的功能,再在w3school上看相关的标签,属性。再应用到自己的东西上。这是一个非常有趣的过程。

直至上周日的实际使用,这个系统的原理是这样子的,通过给每一个队伍分配一个登陆的id用于标示队伍,然后当不同的队伍按下网站上的抢的同时,js将给服务器发送一个 XMLHttpRequest,获取服务器的本地时间传进MySQL数据库里面。同时各个队伍的页面上也轮询服务器获取题目显示和获取数据库中各队伍答题的时间,经过比较之后高亮最快抢答的队伍。

这里的T12标红色说明第12队最快抢到。右上角显示的是队伍名字。左下方显示各队分数。右下方显示题目进度




在github上的开源地址为:https://github.com/LiWeiJie/itAgent 


经过了上周日11月18日的实战测试,才发现自己犯了一个很大的错误。把用户层跟数据层直接连接了起来,用户的每一次请求都是直接向数据库查询,导致了过多用户连接时数据库返回延迟。

解决这个问题的方法其实很简单,只需要加多一个缓冲层用于应对用户查询就可以了。服务器定时维护缓冲层或者采用淘汰策略维护缓冲层,用户的任何请求都经过缓冲层,不能直接访问数据层,这样子就可以大大缓解数据库的压力了


你可能感兴趣的:(java)