作家
登录

TalkingData何坤:如何搭建高可用的数据服务交易系统?

作者: 来源: 2017-12-08 09:40:58 阅读 我要评论

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散


在大年夜数据体系架构设计专场,来自TalkingData的资深Java工程师何坤分享了主题为《高可用数据办事交易体系架构实践》出色演讲,介绍了TalkingData在搭建高可用数据办事体系的过程中,精确计量体系的设计、实现和演进等内容。

演讲中,何坤介绍了TalkingData智能数据办事商城SDMK(Smart Data Market)。SDMK是什么?它供给多种情势的数据办事,包含 API 办事、人群数据办事、异步办事等,还开放了Lookalike,情景感知,猜测引擎,推荐引擎等人工智能办事。经由过程这些数据办事,可以降低数据应用处景的难度,赞助更多企业发明数据的深层价值。

若何搭建高可用的数据办事交易体系?

作为基本举措措施,有很多应用依附于SDMK供给的办事,SDMK的自身的总体可用性必须比它们还要高。推敲到南向办事的多样性和弗成靠性,固然不克不及做办事本身的可用性包管,然则要能做到办事弗采取时,能以合适的方法通知用户。是以,在SDMK构建过程中,TalkingData技巧团队充分推敲了体系的可用性。

何坤表示,想要搭建一个高可用的数据办事交易体系,不仅要做好梳理好营业流程,划搀扶具体的体系功能模块等这些惯例工作。同时,在可用性上,体系须要达到两点请求:一是,计量最终误差请求,不高于0.01%;二是,交易体系可用性请求,不低于99.9%。

若何做到精确计量,包管计量误差不高于0.01%?

那么,我们毕竟该若何做到精确计量?对此,何坤认为,起首我们要眉僮凹确计量的概念,它有两层含义:一是,及时数量的精确性;二是,最终数量的精确性。但及时精确与高并发是一对抵触,是以只能做到最终精确+高并发,就义必定的及时数量精确性,也就是说,及时F量会有必定误差。是以,我们须要在包管最终精确性的前提下,尽量进步及时精确性。

此外,为了包管办事高并发和高QPS下办事的响应时光,可以应用“异步计量”的方法。在产生故障时,选择尽量确保办事可用,容忍可能的超量;在故障后恢复数据,知足最终精确的请求。

何坤表示,之所以选择“异步计量”的方法而不是“同步计量”的方法,是因为:

1.对数据库压力大年夜;

所谓实践出真知,谈及智能数据办事商城实践的经验心得,何坤大年夜若何包管数据办事交易体系的高可用,若何做到精确计量等多个方面与51CTO记者进行了交换。

2.每次调用时延变长,不轻易包管主流程时延稳定;

3.MySQL不易扩大,要做分库分表;

4.异步计量轻易洗数;

5.扩大性好,牵扯到异步办事的所有组件,ES,Kafka,Redis都是原生就支撑便利扩大的。

【51CTO.com原创稿件】2017年12月01-02日,由51CTO主办的WOTD 2017全球软件开起身术峰会在深圳中洲万豪酒店召开。自2012年以来,WOT品牌大年夜会成功举办了14届,积聚了大年夜量的技巧专家资本,获得了广大年夜IT大年夜颐魅者和技巧爱好者的一致承认,成为了业界重要的技巧分享交换平台以及人脉拓展平台。本次会议包含:编程说话与框架,大年夜数据体系架构设计、微办事与容器技巧、前端开辟拭魅战、物联网(IoT)技巧、软件机能优化等10大年夜技巧主题。

此外,为了包管最终一致性,同时让及时精确性尽量达到目标,TalkingData采取了Lambda架构来降低精确性和高并发下及时的抵触。

若何包管体系可用性不低于99.9%?

何坤表示:“可用性背后是故障,我们预防故障的产生,在故障产生的时刻及时髦到故障转移和故障的感知,并且在感知到故障之后能比较快速地恢复故障,恢复之后能做到复盘或者改进,就回到预防这一环,形成良性的轮回。”

要想包管交易体系可用性不低于99.9%,何坤建议可以如许做:

第一,采取分布式安排,无状况设计。采取办事无状况设计,把须要的状况保存在中心存储中(MySQL/Redis等);所有调用必须带trackid,以便定位问题,缩短故障恢复时光。

第二,可以专注于核心营业,降低关键路径复杂性与负载,并合时拆分和归并功能模块,降低模块复杂度。

第三,对资本的应用进行限制,避免无效调用或者故障耗尽资本。可采取熔断机制,分办事SLA,自力适配器,限制pending状况等方法,大年夜用户和办事两个偏素来进行。

第四,消息体系的选择须要可以或许包管数据可持久化,支撑订阅和队列两种方法,具有高机能和高扩大性。

第五,做好监控与报警。所有办事上线之前必须有根本监控与报警,比如:基本组件监控与报警、营业指标监控与报警、调用追踪体系等。

第六,削减更新带来的故障,因为大年夜多半故障都是更新引起的。对此,可以采取灰度体系,基于用户id分流,而不是随机分流。无论gateway请求照样页面请求,所有的请求都带用户id,是以可以基于这个特点在Nginx中写Lua来辨认用户,攫取后端设备的灰度用户列表,决定是进入灰度体系照样正式临盆体系。接入灰度的可所以友爱用户,也可所以守护用户。然则要留意做好守护用户数据的隔离,不要污染临盆数据的统计分析。

此外,何坤强调,为了包管体系的高可用,一方面,要做好功能实现的练习训练测试;另一方面,研发人员须要深刻地切入到运维层面,因为开辟出的产品并不是实现了所有功能就是完成了义务,还须要发明并解决产品运行过程中存在的问题,不然会出现脱节的情况。

记者懂得到,整体办事的高可用性,不止故障转移章一?点,它包含四个方面:事前的预防、事中的主动化故障转移、事中的故障感知、过后的故障恢复。

最后,何坤表示,在设计体系时,除了计量本身的逻辑之外,计量是和可用性是密切联系袈溱一路的。如不雅可用性不敷高,或者不克不及及时改┞俘运行过程中的缺点,那么就会影响计量。比如:如不雅不克不及快速的恢复数据,那么精确性也无法包管。

【讲师简介】

TalkingData何坤:若何搭建高可用的数据办事交易体系?


  推荐阅读

  数物融合,构建商业未来

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 中国,北京,2017年12月7日——PTC公司今日在北京成功举办了2017 PTC Forum中国行业嘉会。PTC全球高管、客户代表及行业>>>详细阅读


本文标题:TalkingData何坤:如何搭建高可用的数据服务交易系统?

地址:http://www.17bianji.com/lsqh/39591.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)