赞
踩
最近刚开始学习中间件,对于其中理解有误的地方,望各位大侠指正,相互学习。
Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到MQ中间件,或者直接到elasticsearch或者logstarsh中存放。
工作流程:
1、 filebeat启动一个或多个探测器(prospectors)
2、 filebeat启动收割进程(harvester)
3、 发送这些新的日志数据到处理程序(spooler)
4、 Filebeat输出集合的数据
Kafka常被用于消息中间件使用。
官方文档介绍
ApacheKafka是一个分布式流媒体平台。
流媒体平台有三个关键功能:
- 发布和订阅记录流,类似于消息队列或企业消息传递系统。
- 以容错的持久方式存储记录流。
- 记录发生时处理流。
队列:先进先出的数据结构。
消息队列:将要传输的数据放在队列中。
Tips:
生产者:将数据放至消息队列
消费者:从消息队列里取数据
为什么需要使用消息队列?
需要解决的问题
介绍kafka中的关键性组件或者组成
主题是发布记录的类别或者订阅源的名称。Topic一般对应的是多个消费者。当然也可以没有,或者单个消费者。
每一个分区都有一个服务器做为leader,0或者多个follower,Leader负责处理分区的读取与写入。每个服务器都充当着一个分区的leader或者其他服务器的follower,以此达到负载均衡。
生成者负责将数据发布至其选择的主题的,并选择那一条数据分配到哪一个分区,以实现平衡负载。
消费者对应着消费者组名。消费者组中的一个实例负责接收被传递到消费者组的记录,消费者实例可以在单独的进程中,也可以在不同的机器上。
介绍kafka的特点,主要为消息系统,数据存储,并行性,流处理
传统的消息模型:排队,发布-订阅
Kafka结合这两种模型,即消费者组,可以对用户组进行扩展处理,另外,与发布-订阅模型一样,kafka可以向多个消费者组广播消息。
多消费者组,多主题,主题多分区。
每一个消费组对应一个主题,每个主题对应着多个日志分区,由于每一个主题的每一个分区都只有一个消费者,并按顺序的使用数据,每个主题都许多分区,这任然可以平衡多消费者实例的负载。
消费者实例不能多与分区数。理论上分区数为消费者线程数。
- Kafka数据存放与消费之间实现解耦,作为实时消息存放系统。
- 数据存放在磁盘,并进行复制以实现容错。
- 允许生产者进行等待确认,直到数据被存放至磁盘,并完成复制。
- 允许消费者选择读取数据的位置,进而作为一种高性能,低延迟提交日志存储,复制和传播的专用分布式文件系统。
仅仅读取,写入和存储数据流是不够的,目的是实现流的实时处理。
在Kafka中,流处理器是指从输入主题获取连续数据流,对此输入执行某些处理以及生成连续数据流以输出主题的任何内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。