From 6320c4ae904d29b044e647a39d7428ebfa822d94 Mon Sep 17 00:00:00 2001 From: Kou Shuang Date: Thu, 10 Oct 2019 13:14:52 +0800 Subject: [PATCH] Kafka --- .../Kafka入门看这一篇就够了.md | 2 +- media/pictures/kafaka/生产者和消费者.png | Bin 0 -> 51065 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 media/pictures/kafaka/生产者和消费者.png diff --git a/docs/system-design/data-communication/Kafka入门看这一篇就够了.md b/docs/system-design/data-communication/Kafka入门看这一篇就够了.md index 4894f3b7..191f259a 100644 --- a/docs/system-design/data-communication/Kafka入门看这一篇就够了.md +++ b/docs/system-design/data-communication/Kafka入门看这一篇就够了.md @@ -24,7 +24,7 @@ Kafka 是一种分布式的,基于发布 / 订阅的消息系统。主要设 ### 概念一:生产者与消费者 - +![](./../../../media/pictures/kafaka/生产者和消费者.png) 对于 Kafka 来说客户端有两种基本类型:**生产者(Producer)**和**消费者(Consumer)**。除此之外,还有用来做数据集成的 Kafka Connect API 和流式处理的 Kafka Streams 等高阶客户端,但这些高阶客户端底层仍然是生产者和消费者API,它们只不过是在上层做了封装。 diff --git a/media/pictures/kafaka/生产者和消费者.png b/media/pictures/kafaka/生产者和消费者.png new file mode 100644 index 0000000000000000000000000000000000000000..25c93e003fcc643d808e3f2fba283c432361fa5a GIT binary patch literal 51065 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 awaujrfw@k$^1>$Ib45$