博客
关于我
[整理] Storm 基础
阅读量:433 次
发布时间:2019-03-06

本文共 1345 字,大约阅读时间需要 4 分钟。

Storm技术解析:分布式实时计算引擎

什么是Storm?

Apache Storm 是一款开源的分布式实时计算系统,旨在处理大规模数据流中的复杂计算任务。Storm 的核心特点体现在三个关键属性上:

  • 分布式:Storm 的计算和存储分散在多台服务器上,通过集群方式完成任务。
  • 实时:系统能够在毫秒级或秒级响应数据,适合对实时性有严格要求的场景。
  • 计算:Storm 可以对流数据进行复杂的处理,如数据清洗、转换等。
  • Storm 的设计理念强调高效处理大规模数据流,常见应用包括实时数据分析、网络流量监控、金融交易系统等。

    我们使用Storm做了什么?

    在实际项目中,我们利用Storm构建了一套消息处理系统,主要用于解决以下问题:

  • 消息下发监控:跟踪消息的传输状态,包括是否成功下发、用户是否接收、消息是否被点击等。
  • 消息效果分析:统计消息的传递量、有效率以及用户互动数据。
  • 基于这些需求,我们设计并实现了一套埋点方案,通过在关键节点打日志的方式,记录消息在不同环节的状态和处理结果。

    背景与需求

    消息管理平台虽然功能简单,但其后端涉及多个系统,消息传输链路较长。一个消息可能需要经过7个系统处理,每个环节都可能导致消息丢失或失败。这种复杂性使得问题排查效率低下,尤其是面对突发问题时,及时响应变得尤为重要。

    我们需要实现两个核心功能:

  • 快速定位消息问题:能够查询用户当天所有消息的下发情况,明确是哪个系统导致消息未送达。
  • 实时下发数据分析:查看消息的整体下发情况,包括传递量、过滤量和用户点击数据。
  • 需求实现

    为了解决上述问题,我们设计了一个基于Storm的埋点方案。具体实现步骤如下:

  • 日志收集:利用logAgent将各系统的日志收集到Kafka中。
  • 日志清洗:Storm负责对收集的日志进行清洗处理,提取有用信息。
  • 数据输出:清洗后的数据输出至Redis(实时)或Hive(离线)。
  • Storm在日志清洗环节发挥了关键作用。通过对关键节点进行埋点,我们可以收集到消息在传输过程中的完整状态。例如:

    • 11:用户未绑定手机号。
    • 12:用户最近收到相同消息。
    • 13:用户屏蔽了消息...

    这些点位记录在关键位置,形成完整的消息传输轨迹,便于后续分析和排查。

    Storm架构

    Storm的工作流程如下:

  • 任务提交:通过StormSubmitter提交任务,上传至Nimbus节点。
  • Nimbus处理:Nimbus将任务交给Supervisor节点,负责任务分配和监控。
  • Worker进程:Supervisor创建Worker进程,每个Worker负责多个Task。
  • Task执行:Task作为Bolt或Spout的实例,处理数据流。
  • Storm的架构具有高度的并行处理能力,支持多种Grouping策略。例如:

    • shuffleGrouping:随机分组,提升数据分布性。
    • fieldsGrouping:按字段分组,确保同一数据流路处理一致性。

    最后

    Storm 是一个强大而灵活的分布式计算框架。通过合理配置和拓扑结构设计,可以实现复杂的数据处理任务。对于实时数据分析和消息处理,Storm 展现出显著优势。

    如果想深入了解Storm 的具体实现和使用方法,可以参考其官方文档或相关技术博客。

    转载地址:http://ehcuz.baihongyu.com/

    你可能感兴趣的文章
    ParameterizedThreadStart task
    查看>>
    Paramiko exec_命令的实时输出
    查看>>
    Spring security之管理session
    查看>>
    paramiko模块
    查看>>
    param[:]=param-lr*param.grad/batch_size的理解
    查看>>
    spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>
    Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
    查看>>
    Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Pascal Script
    查看>>
    Spring Boot集成Redis实现keyspace监听 | Spring Cloud 34
    查看>>
    Spring Boot中的自定义事件详解与实战
    查看>>
    Passport 密码模式
    查看>>
    Spring Boot(七十六):集成Redisson实现布隆过滤器(Bloom Filter)
    查看>>
    passwd命令限制用户密码到期时间
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>
    PAT (Basic Level) Practice 乙级1021-1030
    查看>>
    PAT (Basic Level) Practice 乙级1031-1040
    查看>>