首页 > 其他 > 详细

kafka文档翻译(一)

时间:2015-04-17 15:27:18      阅读:214      评论:0      收藏:0      [点我收藏+]

原文来自(http://kafka.apache.org/documentation.html

本文只做简单的翻译,水平有限,仅供学习交流使用

如有错误,欢迎点评指正

 

1  准备开始

1.1 介绍
kafka是一个分布式的,分区的,复用的日志提交服务。它以一种独特的设计方式提供消息传递系统的功能。

首先让我们回顾一些基本的消息术语
* kafka在不同的类别中维持消息,这些类别被称为主题(topic)
* 我们把发布消息给kafka topic的程序称为生产者(producer)
* 我们称那些订阅topic和处理已发布的消息的程序叫做消费者(consumer)
* kafka作为一个集群运行,集群包含一个或多个服务器,我们称这些服务器为broker

总的来看,生产者(producer)通过网络发送message(消息)给kafka集群,kafka集群再提供(基于消息)服务给consumer(消费者),如下图

技术分享

客户端与服务端的通信通过一个简单的,高性能的,无关语言(language agnostic)的TCP协议完成。我们提供一个kafka的java版客户端,kafka客户端可以用多种语言实现


主题和日志(Topics and Logs)
我们首先深入了解kafka提供的高级抽象--主题(topic),topic是已发布消息的类别或饲料(feed)名,对每个主题,卡夫卡维持一个分区日志如下图

技术分享

每个分区都是一个有序的不可变的消息序列,提交日志时不断地追加到消息序列里,分区里的消息都被赋予了一个顺序的id号称为偏移量(offset),这些id号唯一标识了分区里的每条消息

kafka集群会在一段可配置的时间内保留已发布的消息,不管它们是否被消费了。比如你配置了保留日志的时间是2天,那么在消息发布后的2天,这条消息一直都是可用的,可以被消费的,超过这个时间,kafka会把它删除以释放空间。kafka的性能不会因数据大小而改变,所有保存一些日志并不是问题。

###
实际上保留在每个消费者基础的唯一的元数据是消费者在日志中的位置,被称为“偏移”。
The Kafka cluster retains all published messages—whether or not they have been consumed—for a configurable period of time. 
这个偏移由消费之控制,通常消费者在读完消息后会线性前置偏移量,但实际上这个位置由消费者自己控制,它可以消费信息在任何它喜欢的位置
比如消费者可以旧的偏移量重新处理

这种特性的结合意味着kafka消费者非常方便,他们的行为对集群或其他消费着无太多影响,例如,您可以使用我们的命令行工具“tail”的任何话题,而不改变什么是任何现有的消费者消费的内容。
###
在日志中的分区一举数得。首先,他们允许日志缩放到可以适应一个单服务器,每个分区必须满足承载它的服务器上,但一个topic可能有很多partition(分区),以便它可以处理任意数量的数据。其次,它们更多的是作为并行的一个单元,而不是单独的一位


分配(distribution)
log的分区(partition)分配在kafka集群的每台机器上,并且kafka集群中的每台服务器都都处理请求和数据,因为它们共享这些分区(partitions)。每个partition可以配置共享它们的服务器的数量,并以此来解决容错问题。

每个partition有一台服务器作为老大(leader),然后会有零或多个服务器作为小弟(followers)。leader(老大)处理所有的读写请求,而followers(小弟们)被动地复制leader的操作。如果leader fail(老大萎了),小弟(follower)中有个会成为新老大(leader),每台服务器都会有一些分区(partitions),而服务器会作为这些本地partitions的老大,作为其他不在本地的partitions的小弟,以此来达到负载均衡


生产者(Producers)
生产者(producers)根据他们的选择发布(publish)数据到主题(topics),生产者负责选择分配哪个消息到topic的哪个partition,这会通过一种基于循环的简单负载均衡方式完成,或者通过一些语意分区功能(基于在message中的key),多数分区使用在一秒内完成

kafka文档翻译(一)

原文:http://www.cnblogs.com/lzqhss/p/4434901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!