您当前的位置:首页 > 电脑百科 > 软件技术 > 应用软件

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

时间:2020-03-14 16:02:05  来源:  作者:

01 大数据时代的新挑战:实时流计算

社会需求和科技进步是螺旋式相互促进和提升的。“大数据”一词最早由Roger Mougalas在2005年提出,所以我们姑且认为2005年是大数据时代的元年吧。

大数据技术之所以出现,是因为社会发展的程度已经开始要求我们具备处理海量数据的能力。之后,大数据技术逐渐发展和日趋完善的过程又反过来进一步促进社会产生更多、更丰富的数据。

随着大数据技术的普及,IBM公司为我们总结了大数据的五大特点(也称为5V特点),即Volume(大量)、Velocity(快速)、Variety(多样)、Veracity(真实)和Value(价值),如图1-1所示。

什么是大数据「实时流计算」?深度解析它的4大应用及4个特点

▲图1-1 大数据的五大特点

大数据时代为人们带来了丰富多彩的生活方式,让人们充分享受着从大数据中挖掘而来的价值。但也正因为大数据产生得太多太快,让我们开始疲于对正在发生的事情做出及时反应。

是的,面对无穷无尽的数据洪流,我们急需一种手段来帮助我们抓住并思考那些一闪而逝的瞬间。在这样的背景下,实时流计算技术应运而生。

虽然不能像电影《超体》中女主角直接用手抓住并分析电磁波信息那样,但至少实时流计算技术能够帮助我们抓住数据流的瞬间,分析并挖掘出数据的实时价值。

千万不要小瞧了数据的实时价值。据说在很久以前的欧洲战场上,每次最先知道战争结果的不是后方的政府机构,而是股票交易所里的那些股票投资者。

俗话说,时间就是金钱,效率就是生命。所有实时流计算的目的都是为了获得数据的实时价值。如果数据没有实时价值,那么实时流计算也就失去了它存在的意义。

 

02 实时流计算使用场景

话说有一句至理名言:“天下武功,无坚不摧,唯快不破!”由此足可见“快”的重要性。更快、更完整地获取数据,更快、更充分地挖掘出数据价值,已成为大数据时代各行各业的共识。

在线系统监控、移动数据和物联网金融风控、推荐系统等,虽然行业各不相同,但是它们有个共同点——实时流计算技术在这些领域发挥着越来越重要的作用。

1. 在线系统监控

互联网行业蓬勃发展的背后,是各家企业机房里成千上万的服务器。服务器在7×24小时(传说中的007工作制)的作业过程中产生大量监控数据。

这些数据包含着服务器本身的健康状况,如硬件状态、资源使用情况和负载压力等。第一时间知道服务器的健康状况是非常重要的,可以避免因为一台服务器宕机而后续造成的各种雪崩效应。

除了服务器本身以外,复杂的线上业务系统产生着更多的数据。如今一个每天亿万级别访问量的系统已经司空见惯,产品花样更是层出不穷。业务系统产生日志的数量级由GB变TB,再由TB变PB。

将线上日志导入实时流计算系统,我们可以实现一系列有实时价值的功能。

  • 最基本的功能是监控业务是否运营正常,如监控业务关键指标、发现故障模式等。
  • 高级些的功能是最大程度优化业务使用服务器的成本,如根据CPU、内存和I/O等资源的使用率动态扩展或缩减业务使用的服务器数量。
  • 更高级的功能是挖掘和探索新的业务模式,如CEP(Complex Event Processing,复杂事件处理)和在线统计学习或机器学习模型的各种运用等。

通过实时流计算技术,实时展现业务系统的健康状况,提前避免可能的业务故障,最大程度优化业务使用服务器的成本,抢先发现新的业务模式和商机……这些都是实时流计算技术在在线系统监控领域价值的体现。

2. 移动数据和物联网

移动终端、智能交通、共享单车、5G、工业4.0……如今在我们生活的时代,一波又一波的新名词层出不穷。“移动”和“物联”让数据变得随时随地可得。数据越来越多,单位数据自身的价值却越来越小。实时处理海量数据洪流,已成为移动和物联网领域的当务之急。

例如,对于智能交通系统,传统智能交通系统采用离线方式对交通数据做分析,交通决策不能及时做出;而通过对交通数据流进行实时分析,实时展现交通热点路段、优化信号灯配时、指导行车线路,可实实在在减轻当前热点路段压力、缩减平均行车时间,如图1-2所示。

什么是大数据「实时流计算」?深度解析它的4大应用及4个特点

▲图1-2 基于Spark Streaming的Uber交通热点路段分析及可视化系统

像智能交通这样,优化生活环境,正是实时流计算技术在移动数据和物联网领域体现的价值之一。

3. 金融风控

金融风控是实时流计算技术又一常用领域,如图1-3所示。通常针对贷款的风控,可以分为贷前、贷中和贷后。在贷中和贷后,大多采用离线数据分析和数据可视化技术来实现风险控制。

什么是大数据「实时流计算」?深度解析它的4大应用及4个特点

▲图1-3 基于Flink的实时欺诈检测平台

但是在贷前,特别是在许多现金贷产品中,为了给用户带来更好的产品体验,必须在很短的时间内对用户的信用、还款能力和还款意愿等做出评估。除了针对用户本身的信用风险作分析外,还需要防止金融欺诈问题,如“薅羊毛”和多头借贷。

通过实时流计算技术,在秒级甚至亚秒级,对用户信用和欺诈风险做出判定,在保证可控风险的同时,提供良好的用户体验,进一步提高现金贷产品整体的竞争力。

4. 实时推荐

实时推荐是实时流计算技术的另一个常见应用场景。如今手机几乎成为每一个年轻人的必备品。打开手机,听音乐、浏览新闻、阅读小说、看到心仪的东西买买买……

有一天你突然发现,手机应用越来越了解自己。它们知道推荐什么样的音乐、新闻、小说和商品,并且推荐的东西大抵还是你所喜欢的。

现代推荐系统(见图1-4)背后越来越多地出现了实时流计算技术的影子,通过实时分析从用户手机上收集而来的行为数据,发掘用户的兴趣、偏好,给用户推荐可能感兴趣的内容或商品。或许很多人并不喜欢这种被机器引导的感觉,但是我们还是不可避免地越来越多地被它们所影响。

什么是大数据「实时流计算」?深度解析它的4大应用及4个特点

▲图1-4 基于Spark Streaming的实时零售推荐系统

这里只是简单地列举了几个流计算技术使用的场景。其实在越来越多的行业,很多传统上用离线批处理技术完成的事情也逐渐转变为采用实时流计算技术完成。所以,读者不妨大胆发挥想象力,试着将实时流计算技术运用到生活的各个方面去,挖掘实时信息的潜在价值,说不定就会获得一份惊喜。

03 实时流数据的特点

本节介绍了实时流计算技术的使用场景。实时流计算技术的处理对象是实时流数据。尽管实时流数据的来源千变万化、丰富多彩,但归纳起来,实时流数据通常具有实时性、随机性、无序性和无限性。

1. 实时性

之所以要采集实时流数据,并对其进行实时处理,是因为这些数据具有实时价值。例如,提前预警避免火灾,贷前反欺诈避免骗贷,量化交易抢得市场先机等。如果事后再分析这些数据,这个时候火灾已经发生,骗子已经卷款而逃,市场机会已经错过,分析数据带来的价值也只限于“前事不忘,后事之师”了。

因此,对实时流数据的计算和分析一定要在其实时价值消退之前完成,这就要求计算的时延必须小。有时候数据量大、计算复杂的原因会导致实时计算无法完成,这时甚至会牺牲结果的准确性,在保证误差在可接受范围的前提下,优先满足计算的实时性。

2. 随机性

流数据是真实世界发生各种事件的体现。真实世界事件的随机发生,使得流数据的产生在时间和数量上具有随机性。有时候在很长一段时间内只产生少量数据,有时候又会在很短时间内产生大量数据。

实时流数据的随机性对实时流计算系统在各种流量和突发情况下的处理能力与服务稳定性提出要求。我们可以从数据采样、数据缓冲、计算资源动态调整3个角度来解决实时流数据随机性的问题。

有些情况下,流数据量很大,暂时超过了系统的处理能力,如果业务需求允许,则可以考虑丢弃部分数据,或者使用带采样性质的算法,减少计算压力。如果数据不允许丢失,则可以采用带缓冲和持久化能力的消息中间件来暂时缓冲数据,让系统平稳处理数据流,削平流量高峰。

另外,在一些资源敏感的情况下,可能还需要实时流计算系统能够根据流量压力情况,动态增加或减少计算资源,使得在满足实时流计算的同时,最大化计算资源的使用效率。

 

3. 无序性

流数据是一个关于时间的事件序列。我们通常希望事件会按照它们发生的时刻依次到达系统,但由于异步、并发、网络延时、时间不同步和系统故障等诸多原因,严格意义上的全局有序是很难保证的,甚至几乎不可能。

于是退而求其次,我们可以让数据在局部时间窗口内有序。在目前主流的实时流计算框架中,常见的做法是将接收到的事件,按时间戳分发到一个个的时间窗口分片中,在等待一段时候后,再触发时间窗口分片内数据的统一处理操作。

流数据中的时间有两类:事件发生时间事件处理时间。事件发生时间是指事件发生的时刻,而事件处理时间则是系统处理事件的时刻。这两种时间会导致流计算的过程和结果都有所不同,具体使用哪种时间因场景而异。

4. 无限性

流数据是一种随时间无限增长的数据序列。这是流数据和批数据最本质的区别。批数据在每次处理时数据量是有限的,而流数据没有“每次”的概念,它总在不断产生,无穷无尽。流数据和批数据的区别,导致它们在系统架构和算法实现上都有所不同。

在系统架构上,实时流数据的无限性要求系统必须具备高可用性和实时处理能力。一方面,当系统发生故障时,如果系统没有高可用性,则流数据会丢失,并会暂停流计算。这与实时流计算的目标(即在实时流数据上获取实时价值)是相违背的,因此不可容忍。

另一方面,当系统处理能力不能跟上数据流产生的速度时,待处理的消息会越积越多。当积压数量超过阈值后,具有有限存储空间的系统必然会崩溃。为了消除已经存在的积压消息,系统处理能力必须超过数据流产生的速度,否则积压情况会一直存在。

在算法实现上,实时流数据的无限性对原本针对批数据设计的算法提出挑战。一方面,实时流计算过程中的可用空间和可用时间都有更严苛的限制;另一方面,流计算的输入数据随时间无限增加,这和批处理算法的输入是有限数据集有本质区别。因此,实时流计算使用的算法相比批处理算法,在算法实现和算法复杂度方面会有明显不同。

在实时流数据的四大特点中,无限性是流数据相比批数据最大的区别,这直接导致了流处理和批处理的查询模式有所不同。批处理是在固定数据集上进行不同的查询,而流处理是在无限数据集上进行固定的查询。实时性、随机性和无序性既是实时流计算系统的特点,也是我们要解决的问题。

 



Tags:数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
安装环境Linux服务器:Centos 6 64位Oracle服务器:Oracle11gR2 64位 系统要求说明:内存必须高于1G的物理内存;交换空间,一般为内存的2倍(1G的内存可以设置swap 分区为3G大小);硬...【详细内容】
2021-12-27  Tags: 数据库  点击:(2)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  Tags: 数据库  点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22  Tags: 数据库  点击:(4)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  Tags: 数据库  点击:(21)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  Tags: 数据库  点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  Tags: 数据库  点击:(17)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  Tags: 数据库  点击:(26)  评论:(0)  加入收藏
说明Web应用程序,MySQL数据库,数据库中有三张表:health_patient(病人表)、health_patient_account(病人账户表)、 health_patient_medical_history(病例表),视图需求是,页面分页展示病...【详细内容】
2021-11-05  Tags: 数据库  点击:(32)  评论:(0)  加入收藏
1. 介绍1.1 介绍今天开始我们来学习Java操作MySQL数据库的技巧,Java操作MySQL是借助JdbcTemplate这个对象来实现的。JdbcTemplate是一个多数据库集中解决方案,而我们今天只讲...【详细内容】
2021-11-05  Tags: 数据库  点击:(30)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  Tags: 数据库  点击:(50)  评论:(0)  加入收藏
▌简易百科推荐
ACDSee Pro 2.5 和ACDSee 2009(也就是 ACDSee 11)这两个版本,虽然图标最丑,但却是最适合目前使用的版本。(以前的ACDSee 3.1是第三方改装版,现在出现不稳定了,经常提示插件错误,虽...【详细内容】
2021-12-27  周星骋Cheng    Tags:ACDSee   点击:(5)  评论:(0)  加入收藏
IT之家 12 月 23 日消息,百度地图今日宣布,第二代车道级导航正式上线。据介绍,百度地图第二代车道借助北斗 + 5G,在实现全程车道级导航效果的基础上,全面升级最优车道推荐、全 /...【详细内容】
2021-12-24  IT之家    Tags:百度地图   点击:(11)  评论:(0)  加入收藏
推荐12款不用安装就能免费用的神仙软件,每一款都是百里挑一! 一、文件存储与传输1.不限量网盘地址:https://transferkit.io/一个在线云存储网盘,它提供了不限量的云存储空间,单文...【详细内容】
2021-12-17  牛片网    Tags:软件   点击:(15)  评论:(0)  加入收藏
古人说:凡事预则立不预则废,对于我们当代人来说,做好工作计划,更是职场人高效工作的第一步,所以计划对于我们的重要性不言而喻&hellip;&hellip; 工作表格模板汇总正是因为有了工...【详细内容】
2021-12-15  吴六柒    Tags:工作表格   点击:(34)  评论:(0)  加入收藏
当我们浏览知乎、Youtube、贴吧、CSDN等等,总会遇到服务商一些广告;复制文章的时候,剪切板总是自带一些版权信息;还有一些网页配色很亮,眼睛看着很不舒服。反正就是各种不爽。给...【详细内容】
2021-12-08  小皮虾Pro    Tags:浏览器   点击:(27)  评论:(0)  加入收藏
来源:AirPython作者:星安果 1. 前言大家好,我是安果!之前推荐过很多优秀的 Web 自动化工具,比如:Selenium、Helium、Cypress、Pyppeteer 等利用它们实现自动化的前提是必须安装依...【详细内容】
2021-11-30  CDA数据分析师    Tags:Automa   点击:(31)  评论:(0)  加入收藏
概述superset是由Airbnb开源的轻量级BI分析工具。主要有三大功能:使用数据可视化来探索你的数据,通过交互式的Dashboard来查看你的数据,通过Sql Lab来编写sql查询你的数据。特...【详细内容】
2021-11-30  新视像    Tags:Superset   点击:(21)  评论:(0)  加入收藏
媒体爆料称:近期,老牌音乐播放器Winamp宣布回归,官方网站也大改后重新上线。官方表示:不只是简单更新而是全面重制。新的Winamp 将推出适用于 Windows、macOS 和移动平台的多合...【详细内容】
2021-11-26    中关村在线  Tags:Winamp   点击:(23)  评论:(0)  加入收藏
新版高德地图上线 ADAS 预警导航功能,借助视觉 AI 技术,可智能识别前方车辆、行人,并提供碰撞预警、车道偏离等多种安全提醒,防止风险的发生。 在小联的调研中,只有6%的车机体验...【详细内容】
2021-11-23  手机互联    Tags:高德地图   点击:(144)  评论:(0)  加入收藏
朋友委托我帮忙看看可用邮箱大全有哪些?好用的企业邮箱是多少?他公司要开通企业邮箱。相信很多公司在考虑开通企业邮箱时,都会遇到这样的问题,企业邮箱哪个好?怎样选择合适的企业...【详细内容】
2021-11-11  超级打工人    Tags:企业邮箱   点击:(31)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条