文档中心 > 服务介绍
服务介绍

最近更新时间:2023-01-08

什么是Kafka

消息队列Kafka是一个具有分布式、高吞吐量、可扩展性,支持日志收集、监控数据聚合、流式数据处理、在线和离线分析的消息队列服务。消息队列Kafka针对开源社区的Kafka 提供全托管服务,可选的存储和计算资源,使得用户能够根据需求购买消息队列Kafka;用户只需专注于业务开发,不用考虑部署运维,实现Kafka服务低成本、更弹性、更可靠。


优势

消息队列Kafka具有如下特性:


高可用性:Kafka中的消息具有备份容错机制,Topic的分区和副本特性,避免了单节点故障,提升了数据的安全性和服务的可用性。


安全性:Kafka支持Kerberos安全认证,可基于用户、角色来控制Kafka中的Topic权限,保证数据操作的安全性。


高可靠:Kafka通过持久化、分区和副本等机制来保证可靠性。


扩展性:消息队列Kafka提供集群架构,可以根据实际业务情况动态扩展集群中的节点。


独占式体验:消息队列Kafka实现物理隔离,实例之间互不影响,提供多种规格供用户选择,即开即用,支持对实例和节点进行监控。


流量削峰:消息队列Kafka支持流量削峰,可以节省服务器的资源成本,让服务端处理更加平稳。


异步通信:消息队列Kafka提供异步处理机制,允许用户把消息放入队列,但并不立即处理。支持向队列中放入若干条消息,在需要的时候再去处理。


高吞吐、低延迟:消息队列Kafka支持连续写磁盘、零拷贝等机制,每秒可处理几十万条消息,延迟最低只有几毫秒。


相关概念

Topic

消息主题,是一个逻辑概念。可以为每个业务、应用甚至是每类消息都创建专属的主题。消息的生产与消费,都是围绕消息主题Topic进行生产、消费以及其他消息管理操作的。


生产者(Producer)

生产者负责将被订阅的消息发送到Kafka对应Topic中。


消费者(Consumer)

消费者负责从对应Topic中获取待消费的消息。


节点(Broker)

Kafka集群中的机器或服务被称为Broker,一个Kafka进程对应一台服务器,是一个物理概念。


分区(Partition)

分区是维护Kafka上的消息数据的最小单位,一个Topic可以包含多个分区。(在消息的产生和消费过程中,不需要关注消息存储在哪个Broker上,只需要指定Topic即可,由Kafka负责将消息和对应的Partition关联上)。通过这种分区的方式,实现了水平扩展与高可用。


副本(Replica)

在Kafka中,每个主题可以有多个分区,每个分区又可以有多个副本。多个副本中,只有一个副本是Leader,而其他的都是Follower副本。仅有Leader副本可以对外提供服务。


在Kafka中,实现副本的目的就是冗余备份。所有的读写请求都是由Leader副本进行处理的。Follower副本仅有一个功能,那就是从Leader副本拉取消息,尽量让自己跟Leader副本的内容一致。


产品规格

目前为您提供消息队列Kafka单机版和集群版,支持的实例规格和硬盘规格如下。


实例规格

表-1 实例规格

规格编码

规格名称

网络带宽能力(Mbps

IOPS

最大连接数

db.c1.medium

计算型24GB

800

2000

15000

db.c1.large

计算型48GB

1000

5000

15000

db.c1.xlarge

计算型816GB

1500

8000

15000

db.c1.2xlarge

计算型1632GB

3500

13000

15000

 

硬盘规格

消息队列Kafka支持本地盘,容量为100GB~1000GB(步长为50GB);同时支持SSD云硬盘、FC云盘等,需要提前确认CVK支持相应的存储类型,并在运营平台的[产品中心/产品管理]中做好配置,具体步骤可参见运营指南中【产品管理】相关内容。


应用场景

日志分析

应用程序可以把日志集中发布到Kafka中,无需记录到本地,再由专门的日志管理程序从Kafka中取出进行处理。对于多个进程读写同一个日志文件的场景,可以避免日志文件的加锁操作。也可以对Kafka中的日志进行实时分析。Kafka服务构建了应用系统和分析系统的桥梁,将它们进行解耦。日志采集时业务无感知,且支持Hadoop等离线仓库存储和Storm/Spark等实时在线分析对接。


图-1 日志分析架构图

1.jpg

数据中转

近年来KV存储(HBase)、搜索(ElasticSearch)、流式处理(Storm/Spark Streaming)、时序数据库等等专用系统应运而生,产生了同一份数据集需要被注入到多个专用系统内的需求。利用Kafka作为数据中转枢纽,同份数据可以被导入到不同专用系统中。


图-2 数据中转架构图

1.jpg

流计算处理

由于数据产生快、实时性强、数据量大,所以很难统一采集并入库存储后再做处理,这便导致传统的数据处理架构不能满足需求。而Kafka以及Storm/Samza/Spark等流计算引擎的出现,可以根据业务需求对数据进行计算分析,最终把结果保存或者分发给需要的组件。


图-3 流计算架构图

1.jpg