kafka概要设计】的更多相关文章

Kafka核心功能 即:高性能的消息发送与高性能的消息消费 下载安装包后即可启动Kafka服务器,但是此前需要首先启动Zookeeper服务器,Zookeeper是为Kafka提供协调服务的工具,Kafka内置提供了一个Zookeeper服务器以及一组相关的管理脚本,直接使用该内置Zookeeper即可. Kafka吞吐量/延时分析 吞吐量:某种处理能力的最大值,对于Kafka而言,吞吐量指的是每秒能够处理的消息数或者每秒能够处理的字节数.(高吞吐) 延时:衡量发出某个操作与接收到操作响应之间的…
1. Kafka概要设计 kafka在设计之初就需要考虑以下4个方面的问题: 吞吐量/延时 消息持久化 负载均衡和故障转移 伸缩性 1.1 吞吐量/延时 对于任何一个消息引擎而言,吞吐量都是至关重要的性能指标.那么何为吞吐量呢?通常来说,吞吐量是某种处理能力的最大值.而对于Kafka而言,它的吞吐量就是每秒能够处理的消息数或者每秒能够处理的字节数.很显然,我们自然希望消息引擎的吞吐量越大越好. 消息引擎系统还有一个名为延时的性能指标.它衡量的是一段时间间隔,可能是发出某个操作与接收到操作响应(r…
<Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是为了解决互联网公司的超级大量级数据的实时传输.为了实现这个目标,kafka在设计之初就需要考虑以下四个方面: 第一:吞吐量/延迟 第二:消息持久化  第三:负载均衡和故障转移 第四:伸缩性 1>.吞吐量/延时介绍 我们先打个比方:若kafka处理一条消息需要花费2ms,那么计算得到的吞吐量不会超过500…
1概要设计 Kafka SocketServer是基于Java NIO来开发的,采用了Reactor的模式,其中包含了1个Acceptor负责接受客户端请求,N个Processor负责读写数据,M个Handler来处理业务逻辑.在Acceptor和Processor,Processor和Handler之间都有队列来缓冲请求. 1.1 kafka.network.Acceptor 这个类继承了AbstractServerThread,实现了Runnable接口,因此它是一个线程类.它的主要职责是监…
第一部分:kafka概述 一.定义(消息引擎系统) 一句话概括kafka的核心功能就是:高性能的消息发送与高性能的消息消费. kafka刚推出的时候是以消息引擎的身份出现的,它具有强大的消息传输效率和完备的分布式解决方案,随着版本更新,在kafka0.10.0.0版推出了流式处理组件--Kafka Streams,使kafka交由下游数据处理平台做的事也可以自己做,自此kafka在消息引擎的基础上正式成为了一个流式处理框架.但无论是消息引擎还是流式处理平台,kafka的处理架构从未质变,概括如下…
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从kafka中不断拉取数据进行词频统计.本文首先对spark streaming嵌入kafka的方式进行归纳总结,之后简单阐述Spark streaming+kafka在舆情项目中的应用,最后将自己在Spark Streaming+kafka的实际优化中的一些经验进行归纳总结.(如有任何纰漏…
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息队列的区别,包括性能及其使用方式. 简介 Kafka 是一个实现了分布式的.具有分区.以及复制的日志的一个服务.它通过一套独特的设计提供了消息系统中间件的功能.它是一种发布订阅功能的消息系统. 一些名词 如果要使用 Kafka ,那么在 Kafka 中有一些名词需要知道,文本不讨论这些名词是否在其他…
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕. 3.扩展性: 因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可. 4.…
完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Java\jre7\lib\ext\QTJava.zip was unexpected at this time. Process exited 解决方案: 1.1 右键点击"我的电脑" -> "高级系统设置" -> "环境变量" 1.2 查看…
kafka作为消息队列,在与netty.多线程配合使用时,可以达到高效的消息队列…
0. 关键概念 关键概念 Concepts Function Topic 用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上. Partition 是Kafka中横向扩展和一切并行化的基础,每个Topic都至少被切分为1个Partition. Offset 消息在Partition中的编号,编号顺序不跨Partition(在Partition内有序). Consumer 用于从Broker中取出/消费Message. Producer 用于往Broker中发送/生产Me…
今天查看Kafka 0.10.0的官方文档,发现了这样一句话:Configuration parameter replica.lag.max.messages was removed. Partition leaders will no longer consider the number of lagging messages when deciding which replicas are in sync. 即replica.lag.max.messages参数被正式地移除了,现在topic…
原文地址:http://kafka.apache.org/documentation.html ############################# System ############################# #唯一标识在集群中的ID,要求是正数. broker. #服务端口,默认9092 port= #监听地址,不设为所有地址 host.name=debugo01 # 处理网络请求的最大线程数 num.network.threads= # 处理磁盘I/O的线程数 num.i…
2016-11-13  20:48:43 简单说明什么是kafka? Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情. 举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了.再比如生产者很强劲(大交易量的情况),生产者1秒钟…
Spark Streaming+Kafka 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从kafka中不断拉取数据进行词频统计.本文首先对spark streaming嵌入kafka的方式进行归纳总结,之后简单阐述Spark streaming+kafka在舆情项目中的应用,最后将自己在Spark Streaming+kafka的实际优化中的一些…
前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ===============================================================长长的分割线==================================================================== 正文: 关于Kafka…
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线:Kafka->Logstash->Elasticsearch.这些组件都跑在Docker的容器环境里,我们是基于Kubernetes来编排整个后端的数据处理管线上的容器.Kafka需要暴露在外网里,接收Kafka Producer(filebeat, collectd)发过来的消息.本文是记录基…
1.2 用例 以下是一些Kafka 常见的用例.关于功能方面的一些概念,可以看这篇博客:http://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying. 消息 Kafka 可以很好的替代传统的消息代理.消息代理的使用有很多原因.(将数据发布解耦,缓存未处理消息等等).相比于大多数消息系统,Kafka 有更大…
原文地址:https://kafka.apache.org/documentation.html#semantics 1.开始 1.1 引言 Kafka是一个分布式,分区队列,冗余备份的消息存储服务.它是一个有独特设计的消息系统. 这是什么意思呢? 首先我们介绍下相关的基本通信概念: 1.Kafka按主题分布消息. 2.生产者发布消息给Kafka主题. 3.消费者订阅并处理被提供的发布出的信息. 4.Kafka作为由一个或多个中介服务的集群运行. 然后,深入一些,生产者通过网络发送消息给用于提供…
转自:http://blog.csdn.net/stark_summer/article/details/50203133 上一篇文章介绍了Kafka在设计上是如何来保证高时效.大吞吐量的,主要的内容集中在底层原理和架构上,属于理论知识范畴.这次我们站在应用和运维的角度,聊一聊集群到位后要怎么才能最好的配置参数和进行测试性能.Kafka的配置详尽且复杂,想要进行全面的性能调优需要掌握大量信息,我也只是通过工作中的一些实战经验来筛选出对集群性能影响最大的几个要点,接下来要阐述的观点也仅限于我所描述…
终于下定决心写一点普及类的东西.很多同学对Kafka的使用很感兴趣.如果你想参与到Kafka的项目开发中,很多资源是你必须要提前准备好的.本文罗列了一些常用的Kafka资源,希望对这些developer有所帮助: Kafka最新版本文档: 包含了详尽的设计概要.使用说明.参数定义及其他 Kafka JIRA:Issue列表 Kafka KIP:Kafka Improvement Proposals,可以看到最新的Kafka新功能提议及其讨论 Kafka Design site:几乎可以找到所有的…
一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少.最近Kafka社区邮件组已经在讨论是否应该正式使用新版本consumer替换老版本,笔者也觉得时机成熟了,于是写下这篇文章讨论并总结一下新版本consumer的些许设计理念,希望能把consumer这点事说清楚,从而对广大使用者有所帮助. 在开始之前,我想花一点时间先来明确一些概念和术语,这会极大地方便我们下面的讨论.另外请原谅这文章有点长,毕竟要讨论的东西很多,虽然已然删除了很多太过细节的东…
Kafka 0.9版本开始推出了Java版本的consumer,优化了coordinator的设计以及摆脱了对zookeeper的依赖.社区最近也在探讨正式用这套consumer API替换Scala版本的consumer的计划.鉴于目前这方面的资料并不是很多,本文将尝试给出一个利用KafkaConsumer编写的多线程消费者实例,希望对大家有所帮助.     这套API最重要的入口就是KafkaConsumer(o.a.k.clients.consumer.KafkaConsumer),普通的…
众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信息,特别是想查询某些consumer group的位移是如何在该topic中保存的.针对这些问题,本文将结合…
Kafka到底会不会丢数据(data loss)? 通常不会,但有些情况下的确有可能会发生.下面的参数配置及Best practice列表可以较好地保证数据的持久性(当然是trade-off,牺牲了吞吐量).笔者会在该列表之后对列表中的每一项进行讨论,有兴趣的同学可以看下后面的分析. block.on.buffer.full = true acks = all retries = MAX_VALUE max.in.flight.requests.per.connection = 1 使用Kafk…
最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下.   Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 LogAppendTime 前者表示producer创建这条消息的时间:后者表示broker接收到这条消息的时间(严格来说,是leader broker将这条消息写入到log的时间)   为什么要加入时间戳? 引入时间戳主要解决3个问题: 日志保存(log retention)策略:Kafka目前会定…
Kafka创建topic命令很简单,一条命令足矣:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test 这条命令会创建一个名为test的topic,有3个分区,每个分区需分配3个副本.那么在这条命令之后Kafka又做了什么事情呢?本文将对此进行一下梳理,完整地阐述Kafka topic是如何创建的. topic创建主要分为两个部分:命令行…
在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一.本文结合Kafka源码试图对该问题相关的因素进行探讨.希望对大家有所帮助.   怎么确定分区数?     “我应该选择几个分区?”——如果你在Kafka中国社区的群里,这样的问题你会经常碰到的.不过有些遗憾的是,我们似乎并没有很权威的答案能够解答这样的问题.其实这也不奇怪,毕竟这样的问题通常都是没有固定答案的.Kafka官网上标榜自己是"high-throughput distributed…
简要:开发中,常常因为需要我们要认为修改消费者实例对kafka某个主题消费的偏移量.具体如何修改?为什么可行?其实很容易,有时候只要我们换一种方式思考,如果我自己实现kafka消费者,我该如何让我们的消费者代码如何控制对某一个主题消费,以及我们该如何实现不同消费者组可以消费同一个主题的同一条消息,一个消费组下不同消费者消费同一个主题的不同消息.如果让你实现该框架该如何实现? 这里我演示实验storm的kafkaspout来进行消费,kafkaspout里面使用的低级api,所以他在zookeep…
kafka集群安装 使用的版本 系统:centos6.5 centos6.7 jdk:1.7.0_79 zookeeper:3.4.9 kafka:2.10-0.10.1.0 一.环境准备[只列,不具体写] 1.安装jdk 2.更改机器名 3.添加所有机器的host 二.安装步骤 2.1安装zookeeper 下载zookeeper安装包 下载地址 将安装包上传到一台电脑node1上,我放到了 /opt/kafka/下 解压 cd /opt/kafka/ tar -zxvf zookeeper-…