`
dreaminjava
  • 浏览: 35108 次
  • 性别: Icon_minigender_1
  • 来自: 武汉→北京→武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

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

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






ps:大家新年快乐,希望那些没买到票的都能买到票,能够顺利的回家过年。
分享到:
评论
8 楼 gigix 2008-02-16  
我怎么看怎么觉得这个东西最大的问题是压根没人用。至于什么性能问题,远在十万八千里开外呢。
7 楼 evanyuan 2008-02-16  
客户端的每次访问,为了效率不直接进行数据库查询,首选Cache.
剩下的核心问题是Cache如何更新?其一是数据库更新,通过触发器调用java代码,baidu "SQL 触发器 调用 外部", 路子倒是有,不过未免太ugly了。
  
是否可以考虑服务器端,每10秒进行一次数据库查询,获取最新数据更新Cache? 不过最后肯定会涉及一些同步操作。(类比下,两个人同时在网上定机票,都查询到还剩一张机票,那后下定的人肯定被告之已经被别人先定了)

楼主同事急切想买张火车票回家的心情可以理解,但要系统满足这样的需求好象不经济(你们财务系统的客户也未必就有这个需求)。试想一下Ctrip以及更多的其它类似的互联网系统,貌似也没见过有自动更新的。
6 楼 xiaolin0105 2008-02-04  
当然也可以做成p2p的来传递更新消息,建议看下chord distributed hashtable。
5 楼 xiaolin0105 2008-02-04  
这个设计了分布式系统consistency的设计了。有主动和被动两种,主动么就是每当数据库更新就主动通知客户端;被动么就是客户端不停发消息给数据库询问更新。

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

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

很好玩的,建议自己写写,可以涉及到网络topology的架构,network overlay的管理,failure detection,等分布式架构的基础,,,,
4 楼 tiantian911 2008-02-04  
用cache就可以了吧。。如果沒有新的數據,cahce就不會更新
3 楼 comet12345678 2008-02-04  
dreaminjava 写道
                如何做一个最完美的实时数据传输程序  

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






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


   “利用ajax每秒访问数据库一次,如果有最新的数据就返回最新数据”,刷的web上的数据来自你们自己公司?
"公司是做税务的"?
   不明白
2 楼 tuti 2008-02-02  
怎么定义 最完美?
是否可测试?
1 楼 会飞的不倒翁 2008-02-02  
oracle中触发器是不能控制java的,假如可以也最好不要用

感觉你是想做个刷二手火车票网的东东,人家数据库又不会开放给你
如果你是自己的数据库,自然知道什么时候可以刷新

相关推荐

    PCI 总线高速DMA 数据传输驱动程序设计

    PCI总线标准与PCI9054的完美结合。

    .NET Core商场微信小程序系统的设计与实现

    程序采用MySQL数据库管理系统作为数据库,利用MySQL的高效性与简易性可以使程序更快地渲染数据,传输数据。该系统具有购买商品、查看商品、查看订单、修改收货地址等功能,可以完美地解决用户无需下载单独地APP且...

    e2eSoftVSC1.5完美破解

    e2eSoft VSC 是一个虚拟的声卡驱动程序,它像一个真正的声卡一样工作,您可以用它来录制或广播您“播放”出来的声音。 您也可以使用它来创建多个虚拟声卡实例来满足您的特殊要求。 现在就下载免费试用吧! ...

    【最新版】Syncthing-1.7.0-1.dmg【亲测可用】最好的连续的文件同步程序

    同步是一个连续的文件同步程序。它可以在两台或多台计算机之间实时同步文件,并提供安全保护,以防窥视。您的数据本身就是数据,您应该选择将数据存储在何处,是否与第三方共享以及如何通过Internet传输。 私人的。...

    基于51单片机的锅炉监测(压力,温度)仿真

    本系统利用LM016L小型液晶显示屏、DS18D20温度传感器、ADC0832模数转换器以及压力传感器,实现了一个锅炉检测压力和温度的实时监控系统。系统通过DS18D20温度传感器实时采集锅炉内部的温度数据,并将其传输至系统...

    旨在与 OpenBCI硬件一起使用的 Python 软件库_python_代码_下载

    这些板都使用不同的物理技术将数据传输到蓝牙或 wifi 等计算机 开发人员希望将 OpenBCI 与其他平台和接口集成 因此,即使是最优秀的开发人员也想将 Python 与他们的 OpenBCI 板一起使用,他们也会为从哪里开始而...

    最新版Radmin3.4完美破解版-隐藏任务栏图标

    Radmin (Remote Administrator)是一款屡获殊荣的远程控制软件,它将远程控制、外包服务组件、以及网络监控结合到一个系统里,提供目前为止最快速、强健而安全的工具包。  它有以下特点:  1.运行速度快。  2....

    无需重启即可在 Mac 上运行 Windows 的应用程序.rar

    是功能强大灵活度高的虚拟化方案,无论您是需要运行无 Mac 版本的 Windows 程序,还是需要从 PC 切换到 Mac 并需要传输数据, 都能满足您的需求。 适用于 OS X、Windows 10、8.1 和 7、Google Chrome™、Linux 和 ...

    nigma是您完全恢复删除或丢失的数据从您的iPhone, iPad或iPod快速和有效

    它是一个智能的应用程序,提供了一个完美的数据恢复解决方案,通过彻底扫描您的设备,iTunes备份或iCloud帐户,以找到各种类型的数据,如联系人,呼叫历史,消息,iMessages,笔记,日历事件,照片,视频和更多。...

    vc++ 应用源码包_1

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    破解版为最新完美版。支持WIN7隐藏任务栏图标

    Radmin (Remote Administrator)是一款屡获殊荣的远程控制软件,它将远程控制、外包服务组件、以及网络监控结合到一个系统里,提供目前为止最快速、强健而安全的工具包。  它有以下特点:  1.运行速度快。  2....

    Serv-U v10.1.0.1 企业金版绿色已注册版下载|最新完美破解版

    * 数据传输过程中实现自动即时 (on-the-fly) 压缩。 * 通过详细的用户权限和访问限制保障全面安全。 * 远程管理。 * 在 Windows 2000/XP/2003/Vista 中作为 Windows 系统服务运行。 * 自动删除过期的临时账户。 * ...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

Global site tag (gtag.js) - Google Analytics