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

  • 相关阅读:
    HDU 1102 Constructing Roads
    HDU 1285 确定比赛名次。
    最小生成树 HDU 各种畅通工程的题,prim和kru的模板题
    HDU Jungle Roads 1301 最小生成树、
    并查集小结(转)
    HDU hdu 2094 产生冠军 拓扑排序 判定环
    模运算(转)
    拓扑排序(主要是确定环和加法) HDU 2647 Reward
    HDU 1372 Knight Moves 简单BFS
    用计算机模型浅析人与人之间沟通方式 (一)如何谈话
  • 原文地址:https://www.cnblogs.com/geektcp/p/12956176.html
Copyright © 2011-2022 走看看