zoukankan      html  css  js  c++  java
  • 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

      并不能提高性能。

  • 相关阅读:
    VC++6.0在win8.1系统下运行失败的解决办法
    oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
    Myeclipse 2014破解教程
    关于js赋值给input解析
    java时间格式
    Idea报错Check $M2_HOME environment variable and mvn script match.
    新博客
    理解jquery的$.extend()、$.fn和$.fn.extend()
    在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步
    js字符串倒序
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6352176.html
Copyright © 2011-2022 走看看