Kafka 分布式流平台(A distributed streaming platform)
事件流(event streaming)
一种实时地按照事件流的形式从(数据库,传感器,移动设备,云服务以及应用软件)事件源获取数据的实践。
可以做什么:
实时处理付款和财务交易,例如股票交易,银行以及保险
实时跟踪监控汽车,货运等
实时获取传感器等物联网设备的数据
收集并即时响应客户交互和订单
用作数据平台,微服务的基础服务
Kafka 的三个关键能力:(分布式,高扩展,弹性,容错)
发布以及订阅事件流 按需持久且可靠地存储事件流 处理事件流的发生或追溯
Apache kafka 构成
由 server 和 client 组成的分布式系统,并通过高性能的 TCP 协议通信。
server:Kafka 可以以一台或者多台机器组成的集群运行,其可以跨越多个数据中心或者多个云区域。其中一些 server 构成存储层,又被称作 broker。其他 server 则运行 kafka connect 持续的导入或者导出数据作为事件流,将 kafka 与现有系统集成在一起。任一 server 发生故障,其他 server 将接管其工作。 client:用于编写分布式应用和微服务。
Kafka 概念和术语:
event(事件):记录 "something happened",又被称为 record(记录),message(消息)。事件由 key,value,timestamp(时间戳),optional metadata headers(可选元数据头)
Event key: "Alice"
Event value: "Made a payment of $200 to bob"
Event timestamp: "Sat Sep 12 16:36:10 CST 2020"
producers(生产者):发布(写)事件到 kafka;consumers(消费者):订阅(读、处理)事件,生产者与消费者彻底解耦,生产者不必等待消费者消费。
topics(主题):事件被持久化到 topic,topic 可以被分区存储,被分成不同的 buckets 存储到不同的 kafka broker 上,这样允许客户端并发的从不同的 broker 读取和写数据(高吞吐),同样 key 的事件会被追加到同一分区。每个分区又可以被复制到多个 broker 中(容错)。

Kafka 安装:zookeeper + kafka server
wget http://mirror.metrocast.net/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz
# 启动zookeeper服务
bin/zookeeper-server-start.sh config/zookeeper.properties
# 启动kafka broker服务
bin/kafka-server-start.sh config/server.properties
# 创建topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
# 写events
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
# 读events
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
参考文献:
[1] Kafka 介绍 https://kafka.apache.org/intro#intro_usage
[2] Kafka quick start https://kafka.apache.org/quickstart
文章转载自谭谭编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




