• Srorm并发机制


    一:介绍

    1.运行组件

      

      

    2.并发度

      就是executor数量

      executor线程是物理线程

      task是执行线程

    二:增加并发度

    三:Worker层次

    1.worker工作进程上  

      各个Spout组件、Bolt组件如果在代码中没有显式指定由多少个executor线程来执行,那么默认各由1个executor来执行

      那么并发度就是Spout与Bolt的个数加起来。

      通过增加worker进程数量,可能可以提高并发性能(是可能,因为四个线程在抢占一个进程),主要要求清楚整个Topology有多少个executor线程

      

    2.在worker进程上进行对比(worker=2)

      

      worker=2

      

    3.性能问题  

      个数的确定需要看executor线程。

      如果executor的个数是4,给值6,则不会提高性能。

      一个worker进程跑1到2个executor线程,性能更好。

    4.代码体现

      这里可以设置为2。

      

    五:Exeutor层次

    1.executor线程层次

      提高并发度,本质提高executor数量

      Executor数量的设置,针对具体某个组件 (spout、bolt)

      globalGrouping 全局分组, executor数量设置多个没有什么作用,就用1个

    2.在代码上体现

      setSpout的最后一个参数是executor线程的参数。

      setBlot的最后一个参数也是executor线程参数。

      globalGrouping这种全局分组,只需要设置1即可,多了也是没有用。

      ===》》一个八个线程。

    六:Task层次

    1.Task层次(很少设置)

      是Task执行线程

      每个物理线程 executor默认情况只运行一个task执行线程

    2.代码体现

      

    8.为啥不常使用设置

      每个物理线程 executor默认情况只运行一个task执行线程

      Spout4task,这4个运行在2executor上, 每个物理线程平均执行2task

      并不能提高性能。

  • 相关阅读:
    Indy的TCPServer到底能支持多少个连接
    Delphi TStream 详细介绍
    WebAPI下的如何实现参数绑定
    使用 Weinre 调试移动网站及 PhoneGap 应用
    面向对象的三大特征:封装、继承、多态
    轻量级前端MVVM框架avalon
    三种工厂模式的分析以及C++实现
    简单实现TCP下的大文件高效传输
    Nunit NMock Ncover单元测试
    算法实践——数独的基本解法
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6352176.html
Copyright © 2020-2023  润新知