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

  • 相关阅读:
    或得最新的采购单号并改变为定长
    javaScript学习之路(1)词法结构
    如何让IE下载时下载内容自动跳转到迅雷等下载软件中
    简单的数据库查询操作
    1.1软件工程概述之软件危机
    SQL基础(巧记范式)
    给程序员的五点建议--如何成为编程高手并以此创业
    License控制解决方案
    MVC+三层+ASP.NET简单登录验证
    我曾七次鄙视自己的灵魂
  • 原文地址:https://www.cnblogs.com/geektcp/p/12956176.html
Copyright © 2011-2022 走看看