php之路微服务架构和实践PHP开发

kafka介绍

2018-08-13  本文已影响1人  简书说我的昵称违规

Title: kafka介绍
Date: 2018-08-09 11:08:45
Category: 数据
keywords: kafka,消息队列

在一上篇文章介绍了消息队列的使用场景,现在介绍下kafka

kafka

Kafka主要特点:

kafka 架构

2018-08-09-11-16-19

Kafka的整体架构非常简单,是显式分布式架构,producer、broker(kafka)和consumer都可以有多个。Producer,consumer实现Kafka注册的接口,数据从producer发送到broker,broker承担一个中间缓存和分发的作用。broker分发注册到系统中的consumer。broker的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。客户端和服务器端的通信,是基于简单,高性能,且与编程语言无关的TCP协议。

几个基本概念

消息发送流程

2018-08-09-11-21-17

1.Producer根据指定的partition方法(round-robin、hash等),将消息发布到指定topic的partition里面

2.kafka集群接收到Producer发过来的消息后,将其持久化到硬盘,并保留消息指定时长(可配置),而不关注消息是否被消费。

3.Consumer从kafka集群pull数据,并控制获取消息的offset

消息存储策略

2018-08-09-11-25-33

谈到kafka的存储,就不得不提到分区,即partitions,创建一个topic时,同时可以指定分区数目,分区数越多,其吞吐量也越大,但是需要的资源也越多,同时也会导致更高的不可用性,kafka在接收到生产者发送的消息之后,会根据均衡策略将消息存储到不同的分区中。

2018-08-09-11-27-49

在每个分区中,消息以顺序存储,最晚接收的的消息会最后被消费。

与生产者的交互

2018-08-09-11-28-42

与消费者的交互

2018-08-09-11-30-06
上一篇下一篇

猜你喜欢

热点阅读