课程咨询 :13623629309

太原PHP培训 > 达内新闻 > 太原php培训班:Twitter 的那些开源软件(二)
  • 太原php培训班:Twitter 的那些开源软件(二)

    发布:太原PHP培训      来源:达内新闻      时间:2016-07-06

  • 2016年5月25日,Twitter正式宣布Heron开源。Heron的基本原理和方法:实时流系统是在大规模数据分析的基础上实现系统性的分析。另外,它还需要:每分钟处理数十亿事件的能力、有秒级延迟,和行为可预见;在故障时保证数据的准确性,在达到流量峰值时是弹性的,并且易于调试和在共享的基础设施上实现简单部署。

    为了满足这些需求,Twitter讨论出了几种方案,包括:扩展Storm、使用其他的开源系统、开发一个全新的平台。因为有几个需求是要求改变 Storm的核心架构,所以对它进行扩展需要一个很长的开发周期。其他的开源流处理框架并不能完美满足Twitter对于规模、吞吐量和延迟的需求。而且,这些系统也不能兼容Storm API——适应一个新的API需要重写几个topologies和修改高级的abstractions,这会导致一个很长的迁移过程。所以,Twitter决定建立 一个新的系统来满足以上提到需求和兼容Storm API。

    在Twitter,Heron作为主要的流媒体系统,运行数以百万计的开发和生产topologies。由于Heron可高效使用资源,在迁移Twitter所有的topologies后,整体硬件减少了3倍,导致Twitter的基础设置效率有了显著的提升。

    源码地址:https://github.com/twitter/heron

    DistributedLog——分布式日志复制服务

    DistributedLog(DL)是一个高性能的日志复制服务,提供了持久化、复制以及强一致性的功能,这对于构建可靠的分布式系统都是至关重要的,如复制状态机(replicated-state-machines)、通用的发布/订阅系统、分布式数据库以及分布式队列。DL会分类维护记录的序列(sequences of records),并将其称为Log(又叫做Log Stream),将记录写入到DL Log的进程称之为Writer,从Log中读取并处理记录的进程称之为Reader。DL的优势可以总结为:

    高性能:面对大量的并发日志时,在可持久化的Writer上DL能够提供毫秒级的延迟,同时还能应对上千客户端每秒大量的读取和写入操作;

    持久化和一致性:消息会持久化到磁盘上,并且以副本的形式存储多份,从而避免丢失。通过严格的顺序,保证Writer和Reader之间的一致性;

    各种工作负载:DL支持各种负载,包括延迟敏感的在线事务处理(OLTP)应用(如分布式数据库的WAL和基于内存的复制状态机)、实时的流提取和计算以及分析处理;

    多租户:针对实际的工作负载,DL的设计是I/O隔离的,从而支持多租户的大规模日志;

    分层架构:DL有一个现代化的分层设计,它将有状态的存储层与无状态的服务提供层进行了分离,能够使存储的扩展独立于CPU和内存,因此支持大规模的写入fan-in和读取fan-out。

    源码地址:https://github.com/twitter/distributedlog

    Ambrose——可视化监视系统

    Ambrose是Twitter发布的开源MapReduce可视化监视系统。 它可以监视Hadoop集群上(目前只限于Apache Pig)的MapReduce任务。Ambrose计划支持:

    Pig(已实现)

    Cascading

    Scalding

    Cascalog

    Hive


    源码地址:https://github.com/twitter/ambrose

    SecureHeaders——Web安全开发工具

    SecureHeaders是Twitter送给Web开发者的一份大礼,作为一款Web安全开发工具,Secureheaders能够自动实施安全相关的header规则,包括内容安全政策(CSP),防止XSS、HSTS等攻击,防止火绵羊(Firesheep)攻击以及XFO点击劫持等。

    源码地址:https://github.com/twitter/secureheaders

    Activerecord-Reputation-System——活动记录信誉系统

    Activerecord-Reputation-System系统基于Rails开发,可以根据网络中的评价自动对应用程序进行信誉估值,帮助开发者发现更多的应用程序相关信息,从而指导下一步决策。Twitter称,开发者可以很容易地在Rails应用程序中集成该系统,或者从主应用程序中分离该系统,以便做出更好的设计。

    该系统是一个信誉网络,网络中的数据根据评价进行更新,然后计算信誉值并通过网络进行传播。在该网络中,直接根据评价计算的信誉值称为原始信誉(primary reputations),间接计算的称为非原始信誉(non-primary reputations)。

    太原达内php培训班

    源码地址:https://github.com/twitter/activerecord-reputation-system

    CocoaSPDY——SPDY框架

    CocoaSPDY是一个面向OS X(Cocoa)和iOS(Cocoa Touch)的SPDY框架,基于他们先前对Netty的贡献,同时,他们更新了其iOS应用程序,使用SPDY代替了纯HTTP。Twitter已经注意到,通信延迟降低了多达30%,当“用户的网络状况变得更糟”时,改善效果更明显。

    SPDY有另外一个优点:“多路复用请求”—— 一项在单个TCP会话中连续不断地发送请求并接收乱序响应的能力、从服务器向客户端推送消息,以及压缩请求和响应的头信息。

    源码地址:https://github.com/twitter/CocoaSPDY

    TwUI——UI框架

    TwUI是一个支持硬件加速的Mac的UI框架:

    使用CoreAnimation实现的GPU加速;

    简单的MVC开发。

    与UIKit不同的地方:

    简化Table View单元;

    基于块的布局和drawRect;

    一个统一的坐标系统(bottom left origin);

    Sub-pixel文本绘制。

    太原达内php

    源码地址:https://github.com/twitter/twui

    Twemproxy——代理服务器

    Twemproxy是一个快速的单线程代理程序,支持Memcached ASCII协议和更新的Redis协议。它全部用C写成,使用Apache 2.0 License授权。Twemproxy的强大之处在于可以通过配置的方式让它禁用掉失败的结点,同时还能在一段时间后进行重试,抑或使用指定的键->服务器映射。这意味着在将Redis用作数据存储时,它可以对Redis数据集进行分片(禁用掉结点驱逐);在将Redis用作缓存时,它可以启用结点驱逐以实现简单的高可用性。它的特性是:

    通过代理的方式减少缓存服务器的连接数;

    自动在多台缓存服务器间共享数据;

    通过不同的策略与散列函数支持一致性散列;

    通过配置的方式禁用失败的结点;

    运行在多个实例上,客户端可以连接到首个可用的代理服务器;

    支持请求的流式与批处理,因而能够降低来回的消耗;

    速度快;

    轻量级。

    源码地址:https://github.com/twitter/fatcache

    Fatcache——缓存服务

    Fatcache可以让你在SSD上运行memcached,你可以把它当作是大数据中的缓存。它的一些性能数据如下:

    单节点可每秒可处理10万set操作,每个数据包是100字节;

    单节点可每秒处理4.5k get操作,每个数据100字节;

    8 个Fatcache实例可处理32k get操作/每秒到一个单600GB的SSD存储;

    你可以通过将多个SSD连接到单个机器来提升IO性能。

    源码地址:https://github.com/twitter/fatcache

    AnomalyDetection——自动侦测时间序列异常点的R包

    AnomalyDetection是一个R语言程序包,Twitter通常会在重大新闻和体育赛事期间用AnomalyDetection扫描入站流量,发现那些使用僵尸账号发送大量垃圾(营销)信息的机器人。

    太原达内

    AnomalyDetection异常扫描

    据Twitter透露,AnomalyDetection与Twitter去年10月开源的BreakoutDetection存在互补关系。

    流量异常侦测对于号称“地球脉搏”的Twitter来说非常具有挑战性,因为对流量进行长周期跨度(例如一年)的扫描分析时,一些异常活动往往会掩 盖掉。此外,流量异常的原因也各有不同,有的是健康的,例如重大新闻事件导致的流量异常,而有的是不好的,例如QPS(每秒查询量)中point-in- time实时性下降可能意味着硬件或数据采集方面出了问题。

    太原达内科技

    长周期流量异常侦测

上一篇:太原达内php培训班:Twitter 的那些开源软件(一)

下一篇:太原达内php培训班:4个小例子告诉你,如何成为一名数据极客

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-29

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-29

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-29

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-29

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56

    在线客服系统