美文网首页
19-Kafka02

19-Kafka02

作者: CrUelAnGElPG | 来源:发表于2018-09-05 00:14 被阅读0次

    1.核心概念

    broker: 进程

    producer: 生产者

    consumer: 消费者

    topic: 主题

    partitions: 分区  (副本数)

    consumergroup:

    1.容错性的消费机制

    2.一个组内,共享一个公共的ID groupid

    3.组内的所有消费者协调在一起,

    去消费topic的所有的分区

    4.每个分区只能由同一个消费组的一个消费者来消费

    123--> 1:0分区  0分区还坐落在2,3机器上面   

    offset: 每个partition的数据的id

    00000000000000000000.index

    00000000000000000000.log

    00000000000000002000.index 

    00000000000000002000.log

    a1    00000000000000000001

    a2    00000000000000000002

    a3

    ...

    a2000

    00000000000000000000.index

    1,0      1代表第一条消息 offset ,偏移量

    4,55   

    10,77

    ....

    ....

    稀疏表 隔几条记录一次

    抛出问题:

    1.消费offset 4

    2.消费offset 7 -->4 按顺序往后读

    3.offset 2700

    00000000000000002000.index 

    00000000000000002000.log

    2001    00000000000000002001

    2002

    segment:

    1.log和index文件

    2.

    log.segment.bytes

    log.roll.hours

    3.命名规则: 上一个segment分组log文件的最大offset

    2.消费语义

    at most once: 最多消费一次  消费可能丢失  但是不会重复消费 ?--》log

    at least once: 至少消费一次  消费不可能丢失 但是会重复消费 ?--》我司

    exactly once: 正好一次 消息不会丢失 也不会重复(这才是我们想要的)

          0.10.0.1 不支持不能实现 0.11官方已支持

    1.log允许丢  at most once

    2.log不允许丢 at least once+ 去重 redis

    3.MySQL SQL语句 at least once

    insert into jepson1 12;  -->hbase ok  重复了

    insert into jepson2 13;  挂了

    insert into jepson3 14; 

    选择HBase  put: update insert

    consumer offset:

    1,2,3,4,5

    1,2,3

    offset没有维护 consumer挂了 是不是从上一次的更新的offset的位置去消费

    断点还原

    kafka自己本身

    topic: test

    内嵌一个topic _consumer....

    3.Flume-->Kafka-->Spark streaming 经典案例

    auto.offset.reset:

    latest:

    earliest:

    none

    enable.auto.commit: true

    auto.commit.interval.ms:5000

    1.....9 挂

    offset....15

    ConsumerRecord

    (

    topic = onlinelogs, partition = 0, offset = 2667075,

    CreateTime = -1, checksum = 2396351077, serialized key size = -1,

    serialized value size = 234,

    key = null,

    value =

    {"hostname":"yws76","servicename":"namenode",

    "time":"2018-03-19 15:23:30,028",

    "logtype":"INFO",

    "loginfo":"org.apache.hadoop.hdfs.server.namenode.FSEditLog:

    logSyncAll toSyncToTxId=1377149 lastSyncedTxid=1377148 mostRecentTxid=1377149"}

    )

    生产:断批还原 +put 保证数据零丢失

    批次10000  2000

    4.监控 & 心得

    1.Kafka

    CDH TSQL

    SELECT total_kafka_bytes_received_rate_across_kafka_broker_topics ,total_kafka_bytes_fetched_rate_across_kafka_broker_topics

    WHERE entityName = "kafka:onlinelogs" AND category = KAFKA_TOPIC

    SELECT total_kafka_bytes_fetched_rate_across_kafka_broker_topics

    WHERE entityName = "kafka:onlinelogs" AND category = KAFKA_TOPIC

    exec source

    kafka sink

    图:

    1.生产者和消费者的速度是一样嘛?

    由于趋势度吻合,所以速度一样的

    2.为什么消费者的曲线和生产者的曲线趋势度 吻合?

    及时消费

    么有压力

    3.为什么消费者的曲线和生产者的曲线要高?

    生产: value

    消费:

    相关文章

      网友评论

          本文标题:19-Kafka02

          本文链接:https://www.haomeiwen.com/subject/fmrowftx.html