Kafka的使用(重要的场景)与传统队列的区别

 

1.Kafka 作为存储系统:

    任何允许发布与使用无关的消息发布的消息队列都有效地充当了运行中消息的存储系统。Kafka 的不同之处在于它是一个非常好的存储系统。

写入 Kafka 的数据将写入磁盘并进行复制以实现容错功能。Kafka 允许生产者等待确认,以便直到完全复制并确保即使写入服务器失败的情况下写入也不会完成。

Kafka 的磁盘结构可以很好地扩展使用-无论服务器上有 50KB 还是 50TB 的持久数据,Kafka 都将执行相同的操作。

由于认真对待存储并允许客户端控制其读取位置,因此您可以将 Kafka 视为一种专用于高性能,低延迟提交日志存储,复制和传播的专用分布式文件系统。

2.Kafka 作为消息传递系统:

Kafka 的流概念与传统的企业消息传递系统相比如何?

传统:消息传递的模式:排队和发布订阅

发布订阅广播给所有的消费者 ,

两种模式的优缺点:排队的优势在于,它允许您将数据处理划分到多个使用者实例上,从而扩展处理量。缺点就是单线程

                                发布订阅的优势:数据广播到多个订阅者(消费者),(广播到多个进程),无法进行扩展。kafka 包含组的概念

 kafk的优点:数据广播给多个消费者,多个处理的进行到组里面,没个主题都具有这些属性,可以进行多扩展处理(多次处理,多次运用,消费能力提升),无需选择其中一个个

      消息顺序保存在服务器上,对个订阅者时按照顺序进行分发(异步进行传输的,在不同的使用者之间可能会乱序到达)

                     通过在主题内具有并行性(即分区)的概念,Kafka 能够在用户进程池中提供排序保证和负载均衡。是通过消费组里面的消费者来进行实现的,每个分区都有组中的一个消费者者进行实现。

消费者是该分区的唯一读取器,并按顺序使用数据。由于存在许多分区,平衡许多使用者实例上的负载。但是请注意,使用者组中的使用者实例不能超过分区。

3.Kafka 用作流处理:

仅读取,写入和存储数据流是不够的,目的是实现对流的实时处理。

在 Kafka 中,流处理器是指从输入主题中获取连续数据流,对该输入进行一些处理并生成连续数据流以输出主题的任何东西。

零售应用程序可以接受销售和装运的输入流,并输出根据此数据计算出的重新订购和价格调整

对于简单的场景可以直接进行有Api 进行消费和生产,对于业务场景复杂的,Kafka 提供了完全集成的 Streams API。这允许构建执行非重要处理的应用程序,这些应用程序计算流的聚合或将流连接在一起。

功能有助于解决此类应用程序所面临的难题:处理无序数据,在代码更改时重新处理输入,执行状态计算等。

流 API 建立在 Kafka 提供的核心原语之上:它使用生产者和使用者 API 进行输入,使用 Kafka 进行状态存储,并使用相同的组机制来实现流处理器实例之间的容错。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值