在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Kafka的特点有哪些

145次阅读
没有评论

共计 2307 个字符,预计需要花费 6 分钟才能阅读完成。

本文丸趣 TV 小编为大家详细介绍“Kafka 的特点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka 的特点有哪些”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。

Kafka 是啥?

Kafka 是个集群的消息中间件 + 存储,一个节点可以存储几 T 的数据!

为啥一个中间件需要存储数据呢?

原来,对于 Linkin 这样的互联网企业来说,用户和网站上产生的数据有三种:

需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存放在关系数据库 (Oracle, MySQL) 中的,有些需要事务支持。

活动流数据,准实时的,例如页面访问量、用户行为、搜索情况,这些数据可以产生啥?广播、排序、个性化推荐、运营监控等。这种数据一般是前端服务器先写文件,然后通过批量的方式把文件倒到 Hadoop 这种大数据分析器里面慢慢整。

各个层面程序产生的日志,例如 httpd 的日志、tomcat 的日志、其他各种程序产生的日志。码农专用,这种数据一个是用来监控报警,还有就是用来做分析。

Linkin 的牛逼之处,就在于他们发现了原先 2,3 的数据处理方式有问题,对于 2 而言,原来动辄一两个钟头批处理一次的方式已经不行了,用户在一次购买完之后最好马上就能看到相关的推荐。而对于 3 而言,传统的 syslog 模式等也不好用,而且很多情况下 2 和 3 用的是同一批数据,只是数据消费者不一样。

这 2 种数据的特点是:

准实时,不需要秒级响应,分钟级别即可。

数据量巨大,是交易数据的 10 倍以上。

数据消费者众多,例如评级、投票、排序、个性化推荐、安全、运营监控、程序监控、后期报表等

于是,Linkin 就自己开发了一套系统,专门用来处理这种性质的数据,这就是 Kafka

那么,在整个实践过程中 Linkin 做了什么样的设计,解决了什么问题?

首先看下数据流动图:

多数据中心怎么管理数据:

集群本身的架构图

Kafka 内部架构图,分为数据产生者(Producer),数据中间者(Broker),数据消费者(Consumer)

显然,这是一个集群的发布 / 订阅系统,有如下几个特点

生产者是推数据(Push),消费者是拉数据(Pull)。存在数据复用,在 Linkin 平均生产 1 条消息会被消费 5.5 次。

数据生产者和数据消费者的速度不对等,所以要把数据沉淀在 Kafka 内慢慢处理,Linkin 一般在集群内放 7 天的数据。

性能上追求高吞吐,保证一定的延时性之内。这方面做了大量优化,包括没有全局 hash,批量发送,跨数据中心压缩等等。

容错性上使用的“至少传输一次”的语义。不保证强一次,但避免最多传一次的情况。

集群中数据分区,保证单个数据消费者可以读到某话题 (topic) 的某子话题 (例如某用户的数据) 的所有数据,避免全局读数据

数据规范性,所有数据分为数百个话题,然后在数据的源头——生产者 (Producer) 这边就用 Schema 来规范数据,这种理念使得后期的数据传输、序列化、压缩、消费都有了统一的规范,同时也解决了这个领域非常麻烦的数据版本不兼容问题——生产者一改代码,消费者就抓瞎。

用于监控,这个系统的威力在于,前面所有生产系统的数据流向,通过这个系统都能关联起来,用于日常的运营也好,用于数据审计,用于运维级别的监控也好都是神器??!

To be continued…

所以,Kafka 的设计基本上目前这个领域的唯一选择。我也看了很多其他实现,包括:

scribe(Facebook) | 2 | C++ |  已停止更新,不建议使用
flume(Apache, Cloudera) |1 | Java |  配置较重
chukwa(Hadoop) |12 | Java | 2012 发布最后一版,不建议使用
fluentd |1 | Ruby |  比较活跃,看起来不错
logstash |12345| JRuby |  功能全,据说有不少小 bug
splunk |12345| C/Python |  商业闭源,功能强大,可做参考
timetunnel(Alibaba) | 2 | Java |  基于 thrift,10 年左右成熟
kafka(Linkin) | 2 4 | Scala |  性能强劲,设计巧妙,可以作为基础设施
Samza(Linkin) |12345| | =Kafka+YARN+Hadoop
rabbitmq/activemq/qpid | 2 | Java |  传统消息中间件
Storm(twitter) | 3 | Clojure |  实时计算系统
Jstorm(Alibaba) | 3 | Java | storm 的 Java 版,据说更稳定
S4(Yahoo) | 3 | Java | 2013 年已停止维护
Streambase(IBM) | 3 | Java |  商业产品,作为参考
HStreaming | 3 | Java |  商业产品,作为参考
spark | 3 | Scala |  基于 Hadoop
mongodb | 4 | C++ |  比较浪费硬盘
mysql | 4 | C++ |  无需多说
hdfs/hbase | 4 | Java |  无需多说

数据采集组件

数据传输组件

数据实时计算 / 索引 / 搜索组件

数据存储 / 持久化组件

数据展示 / 查询 / 报警界面组件

从数据传输这块的设计理念来说,Kafka 是最为先进的,

在目前的各种实现中,我猜测可以和 Kafka 一战的也就只有 Splunk 了

读到这里,这篇“Kafka 的特点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2307字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久成人福利视频 | 国产精品免费大片一区二区 | 亚洲一区二区三区视频 | 成人在线观看视频免费 | 国产精品久久午夜夜伦鲁鲁 | 性夜久久一区国产9人妻 | 精品欧美成人bd高清在线观看 | 日韩国产精品无码一区二区三区 | 久久国产成人亚洲精品影院老金 | 欧美精品中文字幕手机免费视频 | 国产色视频一区二区三区qq号 | 欧美日韩不卡视频一区二区三区 | 欧美人与动牲交zooz乌克兰 | 韩国19禁无遮挡啪啪无码网站 | 国产精品第1页 | 人体内射精一区二区三区 | 免费观看美女裸体网站 | 麻豆视频免费 | 免费高清特黄a 大片 | 小可爱视频资源在线观看 | 无遮挡啪啪摇乳动态图 | 色综合亚洲七七久久桃花影院 | 亚洲欧洲一区二区三区在线 | 亚洲av无码日韩av无码导航 | 免费99视频有精品视频高清 | 久久综合琪琪狠狠天天 | 亚洲国产成人久久精品影视 | 国产韩国精品一区二区三区 | 免费a级片在线观看 | 天天摸天天碰色综合网 | 中文字幕精品久久天堂一区 | 99精品久久久久久久 | 无码毛片视频一区二区本码 | 国产人妻人伦精品1国产 | 国产成人综合色在线观看网站 | 国产免费午夜a无码v视频 | 亚洲男人的天堂av手机在线观看 | 亚洲一区日韩一区欧美一区a | 国产在线精品一区二区不卡麻豆 | 四虎成人精品免费影院 | 国产一区二区不卡免费观在线 |