zoukankan      html  css  js  c++  java
  • kafka的分区模式?

    当别人问这个问题的时候,别人肯定是想你是否看过源码。是否针对不同场景改过kafka的分区模式
    这是别人最想知道的是,你的message如何负载均衡的发送给topic的partition
    我们用kafka的时候,可以动态指定partition,也可以不指定partition
    当我们动态指定了partition的时候,kafka会将消息发送到指定的partition
    如果没有指定partition
    这就是关键了,
    如何让这些消息,均衡的发送给每个partition
    先看看发送消息的方式
    
    kafka首先判断partition,如果有partition就发送到指定的partition
    如果没有,就看有没有key
    如果有key就将,key弄成字节,然后用个算法,搞成整数,然后除以partition的个数,最后的余数就是partition的所在
    如果partition,和key都没有的时候,源码弄了一个int类型的counter,从0开始,每来一条消息就累加,用counter除以partition的个数的余数就是partition的所在
    这样就打到了每个partition的均衡了
    【大侠】   ‭‎ 2017/8/25 14:02:17
    当然了,我们也可以自己定义partition
     某些人用partition指定分区数发消息,如果又有人不指定partition,key,就会发生负责不均衡
    你设置了Key,只能保证你自己均衡了
    但是要是有其他人指定某个partition发消息呢
    【大侠】   ‭‎ 2017/8/25 14:09:14
    别个是,1,2,3,4,这是Key的kafka的分的partition,你指定了就变成了1111
    【大侠】   ‭‎ 2017/8/25 14:09:40
    很多公司,都重写了kafka的分区
  • 相关阅读:
    [ECNU 1624] 求交集多边形面积
    [转] Java之ACM速成
    [swustoj 191] 迷宫逃离
    [Swustoj 24] Max Area
    PICK定理模板
    [HDU 1007] Quoit Design
    [转] 最近点对距离问题
    [POJ 2184] Cow Exhibition
    SGU 144.Meeting
    SGU 143.Long Live the Queen(女王万岁)
  • 原文地址:https://www.cnblogs.com/rocky-AGE-24/p/7429664.html
Copyright © 2011-2022 走看看