`
dreaminjava
  • 浏览: 35678 次
  • 性别: 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的,假如可以也最好不要用

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

相关推荐

    微型计算机接口和外设的数据传输完美版资料.ppt

    接口电路的使用是由于微机的外部设备种类繁多,工作原理、驱动方式、信息格式以及速度各异,不能直接与CPU对接,因此需要一个中间层来协调这些差异。接口电路的主要功能包括寻址、输入/输出、数据转换、联络、中断...

    164个JAVA完美程序

    Java I/O流用于读写文件,网络编程,以及数据传输,这些程序可能会涵盖FileInputStream、FileOutputStream、BufferedReader、PrintWriter等类的使用,帮助学习者掌握输入输出操作。 线程是并发编程的基础,这些程序...

    单片机完美485总线程序

    例如,使用DMA(直接存储器访问)提高数据传输效率,或者采用轮询方式实时监控数据交换。 6. **错误处理**:在实际应用中,可能会遇到信号干扰、节点故障等问题,因此需要在程序中加入错误检测和恢复机制,如重试、...

    C#完美Socket服务器程序

    本项目“C#完美Socket服务器程序”旨在提供一个易于理解和使用的服务器端解决方案。 首先,我们需要了解Socket服务器的基本工作流程。当服务器启动时,它会创建一个Socket实例,并绑定到特定的IP地址和端口号。这...

    OLED屏幕完美显示驱动程序

    相比于I2C,SPI能提供更高的数据传输速率。7针的OLED屏幕通常包含四条信号线:时钟(SCK)、主设备输入/从设备输出(MISO)、主设备输出/从设备输入(MOSI)和从设备选择(CS)。 3. **Arduino与OLED屏幕的连接** ...

    STM32F103 DHT22 程序 完美实现

    在这个项目中,我们看到一个完整的程序,用于从DHT22传感器读取温度和湿度,并通过STM32F103微控制器的串行端口1(USART1)输出数据。以下是对这些知识点的详细解释: 1. **STM32F103微控制器**:STM32F103是意法...

    TQ2440 Nand Flash完美测试程序

    一个完美的NAND Flash测试程序应该包括以下几个关键部分: 1. **初始化**:程序首先会初始化NAND Flash控制器,设置合适的寄存器值,如时钟分频、读写时序、地址映射等。 2. **识别芯片**:通过读取NAND Flash的ID...

    Delphi远程高速屏幕传输及控制源码,完美支持到D2009

    在这个源码中,"Delphi远程高速屏幕传输及控制源码,完美支持到D2009"是一个实现远程桌面控制功能的项目,允许用户通过网络实时查看和控制另一台计算机的屏幕。这种技术在远程协助、系统管理、在线教育等领域有着...

    STM32F030SPI从机程序完美.rar

    这个压缩包中的“STM32F030SPI从机程序完美”应该是一个经过验证的、能够正常工作的SPI从机程序实例,可以直接在STM32F030平台上运行,无需额外的移植工作。 总结来说,STM32F030 SPI从机程序涉及的知识点主要包括...

    GPS串口数据采集程序

    标题中的“GPS串口数据采集程序”指的是一个利用串行通信接口(串口)与GPS接收器进行交互,收集GPS定位数据的软件应用。在计算机科学和IT领域,这种程序通常用于获取地理位置信息,比如在车辆跟踪、地理信息系统...

    完美的通信程序

    《构建完美的通信程序》 通信程序是信息技术领域中不可或缺的一部分,尤其在当今互联网时代,无论是客户端与服务器端的交互,还是设备间的通信,都离不开高效、稳定的通信协议和程序。本压缩包文件“客户端和服务器...

    传输线计算程序 电磁兼容屏蔽计算程序

    2. **电压驻波比(VSWR)分析**:VSWR是衡量传输线匹配度的一个指标,它描述了传输线上电压的波动程度。低的VSWR意味着良好的匹配,反之则表示存在反射。 3. **衰减和损耗**:传输线在传输信号时会因材料损耗、辐射...

    STM32F030SPI从机程序完美,stm32spi从机的配置,C/C++

    5. **中断处理**:为了及时响应主机的数据传输,可以配置中断。当SPI_I2S_FLAG_TXE(传输结束)或SPI_I2S_FLAG_RXNE(接收寄存器非空)标志被设置时,可以触发中断服务程序。 6. **数据读写**:在SPI从机模式下,...

    完美解码播放器控件,UDP命令控制

    “网络协议”则意味着这个控件使用了特定的网络通信规范,如UDP(User Datagram Protocol),这是一种无连接的传输层协议,适合于实时数据传输,因为它对延迟敏感,但可能不保证数据的顺序或完整性。 在压缩包子...

    vs2005环境下能完美运行的rs232串口程序

    标题中的“vs2005环境下能完美运行的rs232串口程序”指的是一个串行通信应用程序,它经过了适应性修改后能够在Visual Studio 2005(VS2005)开发环境中顺利运行。这个程序原本可能是为VC6.0设计的,而VC6.0是较旧的...

    大前端完美博客程序

    "大前端完美博客程序"是一个专门针对前端开发者设计的高效、功能完善的博客系统。这个程序旨在提供一个平台,让前端工程师能够展示他们的作品、技术分享和思考,同时也为其他开发者提供学习和交流的空间。"大前端"这...

    PROTRUS完美仿真电路及程序,DS1302+LCD1602

    标题中的“PROTRUS完美仿真电路及程序,DS1302+LCD1602”涉及了两个关键硬件组件的模拟和编程:DS1302实时时钟芯片和LCD1602液晶显示屏,以及一个用于仿真和程序开发的工具——Proteus。下面我们将深入探讨这些知识...

Global site tag (gtag.js) - Google Analytics