【Kafka】之 简介(一)


一、简介


https://kafka.apache.org/intro


(1)问题


1. 什么是 Kafka

Apache Kafka® is a distributed streaming platform.

Kafka是一个分布式流处理平台。

  1. 可当作消息引擎系统(Message System)

引擎:具备某种传输和处理的能力

其实不管是消息引擎还是流式处理平台,Kafka的处理流程从未发生质的变化:

如图:
在这里插入图片描述

  1. 可作为 存储系统

写入到 kafka中的数据是落地到了磁盘上,并且有冗余备份,kafka允许producer等待确认,通过配置,可实现直到所有的replication完成复制才算写入成功,这样可保证数据的可用性。


2. Kafka核心功能是什么?

  1. 高性能的消息发送
  2. 高性能的消息消费

3. Kafka有什么用?

  1. 解耦

生产者与消费者解耦

  1. 冗余

具有持久化能力,可规避消息处理前丢失的风险

  1. 扩展

消息系统是统一的数据接口,各系统可独立扩展

  1. 峰值处理能力

支持峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求

  1. 可恢复性

系统中部分组件失效并不会影响整个系统,它恢复后仍然可以从消息系统中获取并处理数据

  1. 异步通信

在不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理


4. Kafka有什么特性?

Kafka设计之初旨在提供3个方面的功能特性:

  • 为生产者和消费者提供一套简单 API
  • 降低网络传输和磁盘存储开销
  • 具有高伸缩性架构

A streaming platform has three key capabilities:

  • Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
  • Store streams of records in a fault-tolerant durable way.
  • Process streams of records as they occur.

流处理系统有这三种能力:

  • 发布和订阅流式信息,近似于消息队列或企业消息传递系统
  • 在容错环境下存储流式信息
  • 处理流式信息

5. 适用场景?

  1. 消息传输
    解耦和生产者和消费者、缓存消息等。
    代替传统的消息总线(message bus)或消息代理(message broker)

  2. 网站行为日志追踪
    Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。

  3. 审计数据收集
    便捷地对多路消息进行实时收集,同时持久化。
    满足对关键的操作和运维进行监控和审计。

  4. 日志收集
    一个公司可以用Kafka可以收集各种服务的 log,通过kafka以统一接口服务的方式开放给各种 consumer,例如HadoopHBaseSolr等。
    同时保持了低延时的特点。

  5. Event Sourcing(事件源)
    Event Sourcing实际上是领域驱动设计(DDD)的名称,使用事件序列来表示状态变更。

  6. 流式处理
    比如spark streamingstorm



二、参考资料


http://www.thinkyixia.com/2017/10/25/kafka-2/

发布了404 篇原创文章 · 获赞 270 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/fanfan4569/article/details/102073404