zoukankan      html  css  js  c++  java
  • 1.kafka初始、架构模型、角色功能

    kafka是消息中间件

    为什么什么用kafka

    1.service 到service 强一致性
    2.service -> 消息中间件(分布式、可靠性、可扩展、高性能) -> service可以3.消息中间件:解耦、削峰、填谷,消息中间件会有1.单点问题、2.性能问题
     

    AKF

    x轴  集群: 1.副本 2. 读写分离 
    y轴 topic
    z轴 partition : 1.分区内部有序、2.分区外部无序
    
    只要是集群,就需要协调,就需要用到zookeeper的分布式协调
    kafka1.0以前元数据在zk,1.0以后元数据在kafka(每个broker都有一份metadata),既client连接kafka,不在连接zk

    kafka一些知识点

    1.produce生产数据到kafka的broker的对应分区中
    2.数据的重复利用是站在Group上的:消费者有分组概念,比如A组消费的数据进入mysql,B组的数据进入ES
    3.partition和组内的consumer 关系: 1:1 或者N:1   不能1:N 因为不保证顺序性。
    4.topic 的runtime内存维护了自己的offset(偏移量进度),需要持久化: topic自己维护offset,单独开了一个分区用来存储

    在consumer消费的时候回出现数据的丢失和重复消费,请问怎么解决呢?

    维护好各自分区内的offset
    1.默认是异步保存,5s保存一次。a.如果先干活,持久化offset失败了,则重复消费。b.持久化offset成功了,干活失败,则丢失数据。
    
    
    解决办法:
    1.同步消费,业务操作控制offset持久化
        a.单条消费:同步更新offset
        b.批量消费:批量数据 + 事务,更新最后一条offset

    注意: offset是按分区粒度进行的。

  • 相关阅读:
    Hadoop学习之安装HDFS
    常见的6种数据结构
    maven 编译出错 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean
    jquery解决js对象、数组赋值时的引用传递
    405 method not allowed(方法不被允许)
    身份证件号 正确性检查方法
    svn 提交信息模板
    idea 使用说明
    java-System类
    java-Integer 类
  • 原文地址:https://www.cnblogs.com/bigdata-familyMeals/p/15059158.html
Copyright © 2011-2022 走看看