我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

storm记录--4--Storm适用场景-创新互联

Storm适用场景

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比宁城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宁城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宁城地区。费用合理售后完善,10余年实体公司更值得信赖。
  1. 流聚合:

    流聚合就是把两个或多个数据流聚合成一个数据流 -- 基于一些共同的tuple字段。

    builder.setBolt(5,new MyJoiner(),parallelism)

     .fieldsGrouping(1,new Fields("joinfield1","joinfield2"))

     .fieldsGrouping(2,new Fields("joinfield1","joinfield2"))

     .fieldsGrouping(3,new Fields("joinfield1","joinfield2"))

  2. 批处理:

    有时候为了性能或者一些别的原因,你可能想把一组tuple一起处理,而不是一个一个单独处理。

  3. BasicBolt:

    a、读一个输入tuple;

    b、根据这个输入tuple发射一个或者多个tuple;

    c、在execute的方法的最后ack那个输入tuple

    遵循这类模式的bolt一般是函数或者是过滤器,这种模式太常见,storm为这类模式单独封装了一个接口:IbasicBolt。

  4. 内存内缓存 + Fields grouping组合

    在bolt的内存里面缓存一些东西非常常见。缓存在和fields grouping结合起来之后就更有用了。比如,你有一个bolt把短链接变成长链接(bit.ly,t.co之类的)。你可以把短链接到长链接的对应关系利用LRU算分缓存在内存里面以避免重复计算。比如组件一发射短链接,组件二把短链接转化成长链接并缓存在内存里面。看一下下面两段代码有什么不一样:

    builder.setBolt(2,new ExpandUrl(),parallelism).shuffleGrouping(1);

    builder.setBolt(2,new ExpandUrl(),parallelism).fieldsGrouping(1,new Fields("url"));

  5. 计算top N

    比如你有一个bolt发射这样的tuple:"value","count"并且你想一个bolt基于这些信息算出top N的tuple。最简单的办法是有一个bolt可以做一个全局的grouping的动作并且在内存里面保持着top N的值。

    这个方式对于大数据量的流显然是没有扩展性的,因为所有的数据会被发到同一台机器。一个更好的方法是在多台机器上面并行的计算这个流每一部分的top N,然后再由一个bolt合并这些机器上面所算出来的top N以算出最后的top N,代码大概是这样的:

    builder.setBolt(2,new RankObjects(),parallellism).fieldsGrouping(1,new Fields("value"));

    builder.setBolt(3,new MergeObjects()).globalGrouping(2);

    这个模式之所以可以成功是因为第一个bolt的fieldsgrouping使得这种并行算法在语义上是正确的。

  6. 用TimeCacheMap来高效地保存一个最近被更新的对象的缓存:

    有时候你想在内存里面保存一些最近活跃的对象,以及那些不再活跃的对象。TimeCacheMap是一个非常高效地数据结构,它提供了一些callback函数使得我们在对象不再活跃的时候我们可以做一些事情。

  7. 分布式RPC:CoordinatedBolt和KeyedFairBolt:

    用storm做分布式RPC应用的时候有两种比较常见的模式:它们被封装在CoordinatedBolt和KeyedFairBolt里面。

    CoordinatedBolt包装你的bolt,并且确定什么时候你的bolt已经接收到所有的tuple,它主要使用Direct Stream来做这个。

    KeyedFairBolt同样包装你的bolt并且保证你的topology同时处理多个DRPC调用,而不是串行的一次只执行一个。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:storm记录--4--Storm适用场景-创新互联
分享网址:http://shouzuofang.com/article/coegse.html

其他资讯