• kafka 与 rocketmq


    kafka 与 rocketmq
    一、主从复制

    服务端复制 异步复制 rocketMq不会丢消息 当出现故障时,该broker不再接收生产者消息,消费者自动切换到从节点消费 恢复后会继续同步数据到从节点 新版本使用 Dledger 的复制方式
    kafka 多副本 ISR机制(ISR中维护的是与leader信息基本同步的副本) ack=all时会将leader中的消息同步到ISR列表所有节点,如果ISR列表为空 则会选择其中一个flower作为主
    Kafka有一个保护策略,当一半以上的节点不可用时Kafka就会停止
    kafka __consumer_offset topic对应的副本数 也可能引起可用性问题

    二、消息存储

    kafka:一个partition对应一个目录,该目录下有多个segment, segment使用最小offset命令,每个segment下有index文件和log文件

    其中index文件为索引文件,使用稀疏索引,log为数据文件

     问题:为什么分为多个segmen?

    文件过大影响读写性能

    kafka性能存在问题:

    当kafka分区过多时就会产生多个文件,从全局来看又变为了随机读写

    rocketMq:

    使用kafka的模式,但是日志统一记录在 commitLog中,每个分区下记录的时日志地址

    三、运维成本

    kafka 各个broker直接相互协调进行主从切换,运维成本相对较高

    rocketMq 引入namespace 用于协调各个节点,运维成本较低,虽然索引也有多个文件,但是量较小,磁盘的刷新频率较低

    https://cloud.tencent.com/developer/article/1421267

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    Python 自学笔记(二)
    Python 自学笔记(一)
    java.net.MalformedURLException: unknown protocol: 异常
    选择排序精简理解
    JAVA基于File的基本的增删改查
    Oracle常用操作表结构的语句
    jQuery
    基于jquery的ajax方法封装
    javascript运算符——条件、逗号、赋值、()和void运算符 (转载)
    javascript 闭包
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/15509337.html
Copyright © 2020-2023  润新知