kafka入门

kafka入门,第1张

kafka入门 1.kafka简介:

kafka是一种分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,常用于日志收集系统和消息系统。

直白一点,如图所示:

1.第一个框是我们通过filebeat来收集nginx的日志,filebeat是一个生产者,他将日志吐到kafka

2.中间的框是消息中间集群,接收各种消息,包括filebeat发送过来的日志

3.然后就可以写程序,消费kafka日志,进行清洗结算,将清洗后的数据写入到我们的最后一个框(也就是数据库)

kafka实际上就是一种消息系统。

2.消息系统:

1.消息系统简介:

消息系统就是将数据从一个应用传递到另外一个应用,我们只需要关注数据,不需要关注数据是怎么传输的

2.消息系统的两种模式:

点对点传递模式和发布-订阅模式

大部分的消息系统用的是发布-订阅模式

kafka就是一种发布-订阅模式

两种消息系统模式的区别:

首先是点对点:在点对点消息系统中,消息持久化到一个队列中。此时,将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。当一个消费者消费了队列中的某条数据之后,该条数据则从消息队列中删除。该模式即使有多个消费者同时消费数据,也能保证数据处理的顺序。直白说就是生产者消费者 一一对应, 消费者消费完,消息中间件就没有了

示意图如下所示:

 然后是发布-订阅:在发布-订阅消息系统中,消息被持久化到一个topic中。与点对点消息系统不同的是,消费者可以订阅一个或多个topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除。在发布-订阅消息系统中,消息的生产者称为发布者,消费者称为订阅者。

示意图如图所示:

 3.kafka中的专业术语:

broker  --  服务器节点(kafka集群包含一个或多个服务器,服务器节点称为broker)
topic -- 消息的类别
partition  --  分区  --提高吞吐量 -- 提高效率 -- 一般来说有几个broker就设置几个partition
           -- 支持并发的读写
           --  有多个partition的话,消息的顺序总体来说就跟原来不一样了,但在单独的partition里面还是顺序的

producer --即数据的发布者

consumer -- 消费者,从broker中读取数据,消费者可以消费多个topic中的数据

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5705848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存