zoukankan      html  css  js  c++  java
  • Kafka和RocketMQ的使用体验

     Kafka

    Kafka早在5年前就已经非常流行。4年前用Kafka做日志缓存,数据平台接入缓冲,经过Kafka的数据量有100TB级别。

    Kafka本身非常强壮,前提是:
    1、topic不多,最好一个topic;
    2、分区多个没关系,但是分区副本不多,最好只有一个;
    3、zookeeper只有一个节点

    这样的前提下,Kafaka能支持高并发的消息数据接入。

    如果副本较多就会不断的同步数据文件,性能急剧下降;
    如果zk多个节点,元数据信息在zk节点中,数据量大的时候,zk不能稳定,导致节点不一致的问题。一旦不一致,kafka集群就会出现数据紊乱,数据丢失的问题。
    topic比较多,topic信息也是zk来管理和更新,瓶颈还是在zk上。

    阿里巴巴多年前有个叫dubbo的服务在业内出名,但是为什么用着用着内部也不用dubbo呢,因为dubbo必须依赖zookeeper,dubbo官方文档干脆说内部dubbo使用自研的注册组件,zk是个小公司生产用还行的组件,有严重性能瓶颈。


    RocketMQ

    RocketMQ是阿里巴巴模仿了Kafka的设计和特性,使用Java语言进行改良的消息中间件
    主要改良:
    1、注册中心不使用zk,而是重写了一个叫nameserver的模块,专门负责消息路由,消息管理,注册和消费
    2、取消Kafka的分区机制,在RocketMQ里面对应Tag和消息队列机制,也就是说一个topic和Tag组合对应kafka的一个分区,这个组合或者分区里的消息是有序的。
    3、RocketMQ完全支持顺序消费,支持事务消息功能,Kafaka要顺序消费也可以,使用一个分区就可以。

    不足:
    1、nameserver依然是单点,如果nameserver master挂掉需要重新选举,依然会有短暂的消息丢失。这一点和kafka用到zk的情形一样。
    2、rocketMQ虽然是apache顶级项目,在IT圈里面使用的人并不多,技术生态比Kafka差远了。代码bug比Kafka多,有问题也难查。

    其他方面的功能RocketMQ和Kakfa都基本相同。


    RocketMQ基本用法参考:
    https://www.cnblogs.com/520playboy/p/6750023.html

  • 相关阅读:
    Tomcat的startup.bat启动后显示乱码--windows终端
    Java 文件组织形式
    连接Linux之win10子系统Linux安装与使用(一)
    连接Linux之win10子系统Linux安装与使用(二)
    vscode omnisharp server load timed out
    在唯一密钥属性“fileExtension”设置为“.json”时,无法添加类型为“mimeMap”的重复集合项
    vscode编译发布exe
    MySQL数据库一般设计规则
    .Net开发常用工具插件
    linx下对文件权限设置
  • 原文地址:https://www.cnblogs.com/geektcp/p/12956176.html
Copyright © 2011-2022 走看看