故事。我有一个基于Java的Web服务客户端运行拉动数据'可以'每60秒24 * 7 * 365'更新。
如果有新的实时更新,我需要监控1,000多个数据点。如果有新数据点可用,我需要将新值附加到MySQl数据库中。
然后,我需要尽快在基于Java的网络应用程序中以图形形式分析/显示数据。
有没有人对高效的软件架构有任何建议?具体做法是:
欢迎任何建议/建设性批评。
由于
答案 0 :(得分:1)
这不是大量的数据/快速变化。即,将输入值存储在存储器中不是很大的开销。虽然你没有说明捕获数据点所涉及的内容 - 如果需要1秒钟来捕获每个数据点,那么在一个线程中运行它你将无法在60秒内迭代整个数据点:你'我需要看一下多线程。
如果您已经控制了为处理准备输入的代码,那么值得考虑在同一个可执行文件中实现处理 - 但要考虑锁定。以这个频率从cron作业运行校对是关于边界的 - 有许多约束因cron的实现而有所不同 - 你需要考虑如果单个调用花费的时间长于处理的实际间隔会发生什么 - 如果是我,我会在数据捕获中执行此操作或作为守护程序运行。
数据库架构,单个大表与许多小表
答案是单个表通常比多个表更好 - 当然它优于1000个表!
数据库附加,我是否需要实现某种形式的多线程来优化性能?
只有在每次调用时真正创建/更新1000行时,必须具有低于10ms容差的实时响应。
计算和计算的最佳触发机制是什么?推送更新到网络应用程序?
这太模糊了,无法给出任何明智的答案。
以图形形式显示数据
这又是一个非常模糊的问题 - 输出是一个布尔值吗?一组序数值?还有别的吗?
此javascript plotter可能有用。