了解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-…
版本 0.9.2 创建topic bin/kafka-topics.sh --create --topic topic_name --partition 6 --replication-factor 1 -zookeeper 10.27.100.207:2181,10.27.100.144:2181,10.27.100.145:2181 开启console consumer查看消息 bin/kafka-console-consumer.sh --topic rt_live_pcweb -zook…
在工作中我们经常遇到需要给php安装插件,今天把php安装kafka的插件的步骤整理下,仅供大家参考 1:需要先安装librdkafka git clone https://github.com/edenhill/librdkafka.git./configure --prefix=/usr/local/product/librdkafkamake make installln -s /usr/local/product/librdkafka/lib/lib* /usr/local/libln…
第一版:logstash + es 第二版:kafka 替换 logstash的方案…
下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSearch===>kibnana(logstash)这条线路做一个简单的demo,以后有时间尝试整个架构的学习. 以下为日志处理平台的展现图. 当然logstash还能做很多事情,demo中并未接入实际的数据,图形并不是很美观. 下面将简单介绍这一平台搭建过程: 现在我们来搭建这样flume===>k…
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日志服务. Kafka架构 它的架构包括以下组件: 话题(Topic):是特定类型的消息流.消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名. 生产者(Producer):是能够发布消息到话题的任何对象. 服务代理(Broker):已发布的消息保存在一组服务器中,它们被…