美文网首页
美团为什么偏爱kafka?

美团为什么偏爱kafka?

作者: 来杯熊酱不加糖 | 来源:发表于2018-11-22 20:01 被阅读0次

       美团每天产生几亿条消息,这些消息是如何处理的?kakfa又有什么魔力协助美团完成这么大数据量的运转?

        据说去美团面试必定会被问到kafka的问题,有一道题是:kafka的存储机制是怎样的?

       一、 kafka介绍:kafka 是分布式的、基于发布/订阅的消息机制。

        特点:1、磁盘持久化

                   2、顺序写入,先进先出

                   3、支持流计算

     结构:kafka的数据单元由字节数组组成。消息由key+value构成,key可为空。如下图所示:

    消息模式: 数据格式json ,XML等

二、kafka的消息存储

    1、 kafka的消息存储的划分: 1)主题; 2)分区

(上面是根据个人的理解,不对的地方请指正)

      比如主题:消息可以根据美团电影票,外卖,团购,打车等主题进行分类分区;

      比如主题外卖:可以分为北京,深圳,上海,三个分区 

      然后每个分区可以放在不同服务器,所以吞吐量可以非常高,堆服务器轻轻松松到100万。

2、kafka的消息以Broker存储。

     1)一个独立的kafka服务器被称为broker

     2)多个broker组成一个集群

    3)多个broker,有一个当首领

   4)副本机制

    以下为一张kafka的经典集群图,来源网络。

其中生产者产生的消息只会给首领,同理,销售者也只会从首领消费消息。 如图:生产者产生消息0,发送给broker1的首领主题A的0分区上,首领会自动复制到broker2对应分区上。消费者同理。——(个人理解)

     三、kafka 与其它消息中间件比较

rabbitMQ可靠性高是因为有确认机制,kafka的可靠性是通过副本做确认的

        流计算的理解:

        比如:今年的天猫两小时定量单突破千万,应该是给予消息系统的实时统计,不可能从数据库层面统计。

        kafka的流计算:

每天消息都带有时间戳,通过SQL能实时统计出来订单量

        四、安装,配置

              略

        五、使用

        pom文件引用:

配置项:

最重要的两项:brokers 和 zk-nodes

生产者发送消息:

    消费者

相关文章

网友评论

      本文标题:美团为什么偏爱kafka?

      本文链接:https://www.haomeiwen.com/subject/qghrqqtx.html