kafka的使用场景是什么?

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。作为一种高吞吐量的分布式发布订阅消息系统,有着诸多特性。今天,就让我们一起来看看关于它的精华问答吧!

1

Q:什么是kafka?

A:kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

2

Q:kafka的使用场景是什么?

A:1、Messaging

对于一些常规的消息系统,kafka是个不错的选择;partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势.不过到目前为止,我们应该很清楚认识到,kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等)

2、Websit activity tracking

kafka可以作为"网站活性跟踪"的最佳工具;可以将网页/用户操作等信息发送到kafka中.并实时监控,或者离线统计分析等

3、Log Aggregation

kafka的特性决定它非常适合作为"日志收集中心";application可以将操作日志"批量""异步"的发送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/压缩消息等,这对producer端而言,几乎感觉不到性能的开支.此时consumer端可以使hadoop等其他系统化的存储和分析系统。

3

Q:Kafka 与传统的消息系统有什么区别?

A:Kafka系统是一个分布式系统,易于向外扩展;可以同时为发布和订阅高吞吐量;支持多订阅者,当失败时能自动平衡消费者;将消息持久化到磁盘,因此可以用于批量消费,例如ETL。

4

Q:kafka作为分布式消息系统有哪些特点?

A:kafka 是作为一个集群运行在一个或者多个服务器上的;kafka集群存储的消息是一个topic为类别记录的;每个消息(也叫record)都是由一个key,一个value和时间戳构成的。

5

Q:kafka节点之间如何备份?

A:Kafka允许用户为每个topic设置副本数量,副本数量决定了有几个broker来存放写入的数据。如果你的副本数量为3,那么一份数据就会被存放在3台不同的机器上,在所有备份节点中,有一个节点作为leader节点,这个节点保存了其它备份节点列表,并维持各个备份间的状态同步。

副本以topic的分区为单位。在正常情况下,kafka每个分区都有一个单独的leader,0个或者多个follower。副本的总数包括leader。所有的读取和写入到该分区的leader。通常,分区数比broker多,leader均匀分布在broker。Follower的日志完全等同于leader的日志,相同的顺序相同的偏移量和消息。Follower作为普通的消费者从leader中消费消息并应用到自己的日志中。并允许follower从leader拉取批量日志应用到自己的日志,这样具有良好的性能。

------------------------------

小伙伴们冲鸭,后台留言区等着你!

关于Kafka,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~

------------------------------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190118B0FZF600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动