论坛首页 综合技术论坛

如何做一个最完美的实时数据传输程序

浏览 3566 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-01  
                如何做一个最完美的实时数据传输程序  

   年底公司没什么事,看到同事们都在刷各个不同的二手火车票网站,因为要得到最新信息要不停的F5,所以我想做一个实时更新最新数据的web程序,反正也没什么事情做。
    我的思路是:利用ajax每秒访问数据库一次,如果有最新的数据就返回最新数据,完成小demo,功能也实现了,但是同事觉得我的思路不好,因为不停的访问数据库会影响效率,公司是做税务的,效率总是放在第一位的。
     同事也提供了一个思路,利用ajax每秒访问后台但是不允许数据库,利用oracle的触发器,如果有新数据插入就允许访问相关数据库数据。
     不知道能否用触发器控制一段java代码,这个暂且不说,就算可以实现效率会提高多少?
     不知道大家是否有什么看法和新的思路,怎么样才能做一个最完美的实时数据传输程序。






ps:大家新年快乐,希望那些没买到票的都能买到票,能够顺利的回家过年。
   发表时间:2008-02-02  
oracle中触发器是不能控制java的,假如可以也最好不要用

感觉你是想做个刷二手火车票网的东东,人家数据库又不会开放给你
如果你是自己的数据库,自然知道什么时候可以刷新
0 请登录后投票
   发表时间:2008-02-02  
怎么定义 最完美?
是否可测试?
0 请登录后投票
   发表时间:2008-02-04  
dreaminjava 写道
                如何做一个最完美的实时数据传输程序  

   年底公司没什么事,看到同事们都在刷各个不同的二手火车票网站,因为要得到最新信息要不停的F5,所以我想做一个实时更新最新数据的web程序,反正也没什么事情做。
    我的思路是:利用ajax每秒访问数据库一次,如果有最新的数据就返回最新数据,完成小demo,功能也实现了,但是同事觉得我的思路不好,因为不停的访问数据库会影响效率,公司是做税务的,效率总是放在第一位的。
     同事也提供了一个思路,利用ajax每秒访问后台但是不允许数据库,利用oracle的触发器,如果有新数据插入就允许访问相关数据库数据。
     不知道能否用触发器控制一段java代码,这个暂且不说,就算可以实现效率会提高多少?
     不知道大家是否有什么看法和新的思路,怎么样才能做一个最完美的实时数据传输程序。






ps:大家新年快乐,希望那些没买到票的都能买到票,能够顺利的回家过年。


   “利用ajax每秒访问数据库一次,如果有最新的数据就返回最新数据”,刷的web上的数据来自你们自己公司?
"公司是做税务的"?
   不明白
1 请登录后投票
   发表时间:2008-02-04  
用cache就可以了吧。。如果沒有新的數據,cahce就不會更新
0 请登录后投票
   发表时间:2008-02-04  
这个设计了分布式系统consistency的设计了。有主动和被动两种,主动么就是每当数据库更新就主动通知客户端;被动么就是客户端不停发消息给数据库询问更新。

如果是内部的web,我觉得能不涉及数据库查询最好不要涉及,因为数据库和客户端(不管是终端用户还是管理员)都是你可以控制的,没必要通过数据库来保持信息的同步,不合算。

方法就是只要有一方更新了数据库车票信息,就发消息给所有的用户,让他们去更新数据库。其他时候就不用忙着刷新了。可以设几个消息的manager,每个manager下面一批用户,top level的发消息给manager要求更新,然后manager发消息给user通知更新。顺便manager也可以管理user的加入和离开或者dead,实习负载平衡。manager之间还可以选择容错和pick up,,,

很好玩的,建议自己写写,可以涉及到网络topology的架构,network overlay的管理,failure detection,等分布式架构的基础,,,,
0 请登录后投票
   发表时间:2008-02-04  
当然也可以做成p2p的来传递更新消息,建议看下chord distributed hashtable。
0 请登录后投票
   发表时间:2008-02-16  
客户端的每次访问,为了效率不直接进行数据库查询,首选Cache.
剩下的核心问题是Cache如何更新?其一是数据库更新,通过触发器调用java代码,baidu "SQL 触发器 调用 外部", 路子倒是有,不过未免太ugly了。
  
是否可以考虑服务器端,每10秒进行一次数据库查询,获取最新数据更新Cache? 不过最后肯定会涉及一些同步操作。(类比下,两个人同时在网上定机票,都查询到还剩一张机票,那后下定的人肯定被告之已经被别人先定了)

楼主同事急切想买张火车票回家的心情可以理解,但要系统满足这样的需求好象不经济(你们财务系统的客户也未必就有这个需求)。试想一下Ctrip以及更多的其它类似的互联网系统,貌似也没见过有自动更新的。
0 请登录后投票
   发表时间:2008-02-16  
我怎么看怎么觉得这个东西最大的问题是压根没人用。至于什么性能问题,远在十万八千里开外呢。
1 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics