2011-03-29 36 views
1

故事。我有一个基于Java的Web服务客户端,运行的数据可以每隔60秒24 * 7 * 365更新一次。Web服务提供大量数据点的实时分析

如果新的更新实时可用,我需要监控1,000个数据点。如果有新的数据点可用,我需要在MySQl数据库中追加新值。

然后我需要在基于java的web-app ASAP中以图形形式分析/显示数据。

有没有人对高效软件架构有任何建议?具体做法是:

  • 数据库架构,单个大表Vs的许多小的表
  • 数据库追加,我需要实现某种形式的多线程的优化性能?
  • 什么是最好的触发机制来计算&推送更新到网络应用程序?

任何意见/建设性的批评是值得欢迎的。

谢谢

回答

1

这不是一个巨大的数据量/快速变化。即将输入值存储在存储器中并不是很大的开销。虽然你没有说过捕获数据点有什么 - 如果它需要1秒捕获每个数据点,然后在单个线程中运行它,你将无法在60秒内遍历整个数据集:你需要看看多线程。

如果您已经控制了为处理准备输入的代码,那么值得考虑在相同的可执行文件中实现处理 - 但是要考虑锁定。以这个频率运行cron作业的排序规则大约是边界线 - 根据cron的实施情况,有许多约束条件会有所不同 - 您需要考虑如果单个调用比实际要处理的时间间隔长,会发生什么情况 - 如果是我,我会在数据捕获中做它或者作为守护进程运行。

数据库架构,单个大表Vs的许多小的表

答案是,一个单一的表通常优选多个表 - 当然这是最好1000台!

数据库追加,我需要实现某种形式的多线程来优化性能吗?

只有在每次调用时真正创建/更新1000行并且必须具有低于约10ms容限的实时响应时才有效。

什么是最好的触发机制来计算&推送更新到网络应用程序?

这太含糊不清,无法给出明智的答案。

显示以图形形式

再次它的一个非常模糊的问题的数据 - 是输出一个布尔?一组序数值?还有别的吗?

这个javascript plotter可能是有用的。

相关问题