分布式系统ID的生成方法之UUID、数据库、算法、Redis、Leaf方案( 二 )

▲图1-2 基于Spark Streaming的Uber交通热点路段分析及可视化系统
像智能交通这样,优化生活环境,正是实时流计算技术在移动数据和物联网领域体现的价值之一 。
3. 金融风控
金融风控是实时流计算技术又一常用领域,如图1-3所示 。通常针对贷款的风控,可以分为贷前、贷中和贷后 。在贷中和贷后,大多采用离线数据分析和数据可视化技术来实现风险控制 。

分布式系统ID的生成方法之UUID、数据库、算法、Redis、Leaf方案

文章插图
▲图1-3 基于Flink的实时欺诈检测平台
但是在贷前,特别是在许多现金贷产品中,为了给用户带来更好的产品体验,必须在很短的时间内对用户的信用、还款能力和还款意愿等做出评估 。除了针对用户本身的信用风险作分析外,还需要防止金融欺诈问题,如“薅羊毛”和多头借贷 。
通过实时流计算技术,在秒级甚至亚秒级,对用户信用和欺诈风险做出判定,在保证可控风险的同时,提供良好的用户体验,进一步提高现金贷产品整体的竞争力 。
4. 实时推荐
实时推荐是实时流计算技术的另一个常见应用场景 。如今手机几乎成为每一个年轻人的必备品 。打开手机,听音乐、浏览新闻、阅读小说、看到心仪的东西买买买……
有一天你突然发现,手机应用越来越了解自己 。它们知道推荐什么样的音乐、新闻、小说和商品,并且推荐的东西大抵还是你所喜欢的 。
现代推荐系统(见图1-4)背后越来越多地出现了实时流计算技术的影子,通过实时分析从用户手机上收集而来的行为数据,发掘用户的兴趣、偏好,给用户推荐可能感兴趣的内容或商品 。或许很多人并不喜欢这种被机器引导的感觉,但是我们还是不可避免地越来越多地被它们所影响 。
分布式系统ID的生成方法之UUID、数据库、算法、Redis、Leaf方案

文章插图
▲图1-4 基于Spark Streaming的实时零售推荐系统
这里只是简单地列举了几个流计算技术使用的场景 。其实在越来越多的行业,很多传统上用离线批处理技术完成的事情也逐渐转变为采用实时流计算技术完成 。所以,读者不妨大胆发挥想象力,试着将实时流计算技术运用到生活的各个方面去,挖掘实时信息的潜在价值,说不定就会获得一份惊喜 。
03 实时流数据的特点本节介绍了实时流计算技术的使用场景 。实时流计算技术的处理对象是实时流数据 。尽管实时流数据的来源千变万化、丰富多彩,但归纳起来,实时流数据通常具有实时性、随机性、无序性和无限性 。
1. 实时性
之所以要采集实时流数据,并对其进行实时处理,是因为这些数据具有实时价值 。例如,提前预警避免火灾,贷前反欺诈避免骗贷,量化交易抢得市场先机等 。如果事后再分析这些数据,这个时候火灾已经发生,骗子已经卷款而逃,市场机会已经错过,分析数据带来的价值也只限于“前事不忘,后事之师”了 。
因此,对实时流数据的计算和分析一定要在其实时价值消退之前完成,这就要求计算的时延必须小 。有时候数据量大、计算复杂的原因会导致实时计算无法完成,这时甚至会牺牲结果的准确性,在保证误差在可接受范围的前提下,优先满足计算的实时性 。
2. 随机性
流数据是真实世界发生各种事件的体现 。真实世界事件的随机发生,使得流数据的产生在时间和数量上具有随机性 。有时候在很长一段时间内只产生少量数据,有时候又会在很短时间内产生大量数据 。
实时流数据的随机性对实时流计算系统在各种流量和突发情况下的处理能力与服务稳定性提出要求 。我们可以从数据采样、数据缓冲、计算资源动态调整3个角度来解决实时流数据随机性的问题 。
有些情况下,流数据量很大,暂时超过了系统的处理能力,如果业务需求允许,则可以考虑丢弃部分数据,或者使用带采样性质的算法,减少计算压力 。如果数据不允许丢失,则可以采用带缓冲和持久化能力的消息中间件来暂时缓冲数据,让系统平稳处理数据流,削平流量高峰 。
另外,在一些资源敏感的情况下,可能还需要实时流计算系统能够根据流量压力情况,动态增加或减少计算资源,使得在满足实时流计算的同时,最大化计算资源的使用效率 。
 
3. 无序性
流数据是一个关于时间的事件序列 。我们通常希望事件会按照它们发生的时刻依次到达系统,但由于异步、并发、网络延时、时间不同步和系统故障等诸多原因,严格意义上的全局有序是很难保证的,甚至几乎不可能 。


推荐阅读