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中的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值