首先,需要确保监控的实时性,stream滑动窗口5秒滑动一次,当stream获取到数据后,需要存到redis的hll数据结构中,那么k-v形式的数据库,k的设计就很关键,如何设计?
2012-01-02 00:23:03
数据流中存在这样格式的时间,那么按照每5分钟一次的间隔存储数据,可以保证监控的时效以及对集群的负载的一个平衡,那么key的原则每5分钟一次,第5分钟算作前一个,例如 05:00算作00分钟的数据,而05:01算作05的数据这样显而易见的清晰
那么同步数据的窗口一定要大于5分钟才可以,我们可以把其设置为一小时,因为需要考虑到数据延迟的原因,如果不好理解,简单解释,我们现在看到的数据最短应该是5分钟之前的数据,而不是当前的实时数据.
这里我们同步窗口的时间设置为24小时,这样比较简单高效的同步数据过去,因为需要根据key去找数据,而如果有算法直接得出key就不用费劲去搞key在系统中传递的问题了,使用jdbc写进数据库(Hbase),还是实时发送数据流,还是kafka? 算法最简单…
10-04
2649