2016 - 2024

感恩一路有你

kafka和mq的区别 日志采集系统flume和kafka有什么区别及联系?

浏览量:1340 时间:2021-03-17 08:01:52 作者:admin

日志采集系统flume和kafka有什么区别及联系?

Flume和Kafka有一部分功能是相同的,但是整体来看,两者的差别还是很大的;它们使用的场景有所不同,但是可以相互配合使用。


Flume

简单的说,Flume是分布式日志收集系统,它把各个服务器上的日志收集起来,传送到制定的地方,比如传送到HDFS中。

Kafka

Kafka的定位是分布式消息中间件,自带存储,提供push和pull存取数据功能。


使用场景

在实际应用中,系统实时产生的日志需要最后进入HDFS,但是生产上的日志数量会有波动,比如由于访问量的增加,导致突然之间产生大量的日志,这时候可能会导致日志写入HDFS失败,所以这时候可以先把日志数据写入到Kafka中,再由Kafka导入到HDFS中。

总结:在日志采集系统中,把Kafka当做日志缓存更加合适,Flume做数据采集,因为它可以定制很多数据源,减少开发量,所以Flume和Kafka可以配合起来一起工作。

整体的流程是这样的:

服务器上的日志<--Flume-->Kafka-->HDFS-->离线计算

服务器上的日志<--Flume-->Kafka-->Storm


希望我的回答能够帮助到你!

kafka和mqtt的区别是什么?

kafka是分布式消息队列或者叫分布式消息中间件,有时候会叫做一种MQ产品(Message Queue),同类型的有RabbitMQ,ActiveMQ等等。MQTT是一种即时消息传输协议,Message Queuing Telemetry Transport,也就是一种即时信息传输的一种格式约定,与其类似的有XMPP等,是用来做IM的。kafka是不支持MQTT协议的,如果非要把它们集成在一起,你要不自己分析,要不去Github上找找,说不定有人做过这样的项目。两个M的意思,是完全不一样的,kafka的M是指各个服务器或各个进程间传输的消息,而MQTT的M,是指类似MSN,QQ那种IM中那种大家交流的那种消息。

如何设计一个MQ消息队列?

1.先上图,明确一个消息发送和消费的流程

2.消息消息首先需要定义消息协议,比如ActiveMQ,Stomp,XMPP等

3.消息协议定义好了,明确消息队列需要满足什么场景

是否需要保证消息可靠性,如果需要就要做存储的高可用

是否需要支持同步和异步消息

是否需要保证消息的顺序

是否需要支持延时消息

具体可以参照很多开源实现的特性,比如RocketMQ就是高可靠的,Kafka就是高吞吐量的,但是不是高可靠的。


kafka和mq的区别 rocketmq和kafka区别 kafka是什么干什么用的

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。