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

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    DELPHI开发LINUX包
    DELPHI开发LINUX的动态库
    中间件测试工具
    CENTOS7安装OPENSSL
    咏南跨平台中间件简介
    IdHTTPServer开发https服务器
    ServiceStack.Redis常用操作
    ServiceStack.Redis 之 IRedisTypedClient<第四篇>
    Redis常用命令速查 <第二篇>
    ServiceStack.Redis之IRedisClient<第三篇>
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/15509337.html
Copyright © 2011-2022 走看看