一.简介 1.1 概述 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目. 主要应用场景是:日志收集系统和消息系统. Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能. 高吞吐率.即使在非…
<Kafka剖析:Kafka背景及架构介绍> <Kafka设计解析:Kafka High Availability(上)> <Kafka设计解析:Kafka High Availability (下)> <Kafka设计解析:Replication工具> <Kafka设计解析:Kafka Consumer解析> Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分…
一.Apache Kafka 1.了解Kafka 1.1.Kafka是什么?有什么用? 是什么? 1) Apache Kafka 是一个消息队列(生产者消费者模式) 2) Apache Kafka 目标:构建企业中统一的.高通量.低延时的消息平台. 3) 大多的是消息队列(消息中间件)都是基于JMS标准实现的,Apache Kafka 类似于JMS的实现. 有什么用? 1) 作为缓冲,来异构.解耦系统. 1.2.kafka的特性 消息持久化(Kafka 基于文件系统来存储和缓存消息). 高吞吐量…
Kafka简介 消息队列(Message Queue) 消息 Message 网络中的两台计算机或者两个通讯设备之间传递的数据.例如说:文本.音乐.视频等内容. 队列 Queue 一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素.入队.出队. 消息队列 MQ 消息+队列,保存消息的队列.消息的传输过程中的容器:主要提供生产.消费接口供外部调用做数据的存储和获取. MQ分类 MQ主要分为两类:点对点(p2p).发布订阅(Pub/Sub) 共同点: 消息生产者生…
之前有写过elasticsearch集群和elk集群的博客, 都是基于docker的,使用docker-compose进行编排(K8S暂未掌握) 三台服务器搭建es集群:https://www.cnblogs.com/lz0925/p/12011026.html 单机搭建elk集群:https://www.cnblogs.com/lz0925/p/12018209.html 本文较长,上述两个博文中的内容本文都会重新讲解,建议收藏后进行阅读.本文包含了ELK + kafka(zookeeper)…
阅读本文大约需要 30 分钟. 大家好,我是 华仔, 又跟大家见面了. 上一篇作为专题系列的第一篇,我们深度剖析了关于 Kafka 存储架构设计的实现细节,今天开启第二篇,我们来深度剖析下「Kafka Broker 端网络架构和请求处理流程」是如何设计的? 相信使用过 Kafka 的朋友都知道其吞吐量可以高达百万,但很少人理解其中的设计原理. 那么 Kafka Broker 端网络架构和请求处理到底是使用了哪些高大上的技术?它到底解决了什么问题?究竟是怎么解决的? 只有了解了这些, 我们才能深刻…
本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说明不再详细赘述.Flume包含Source.Channel.Sink三个最基本的概念: Source——日志来源,其中包括:Avro Source.Thrift Source.Exec Source.JMS Source.Spooling Directory Source.Kafka Source.…
<Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kafka已经有了深入对一步了解了,因为现在的你已经不考虑如何部署kafka以及调优了,而是考虑到kafka安全的问题.其实,在很多企业中,很少有人考虑到kafka的安全,小到几十人的小型互联网公司,达到某些云平台的云服务(我这里就不说是哪家云公司了),他们默认都是不会给kafka配置相关安全策略的,而是要求用户自…
Kafka消费形式验证 前面的<Kafka笔记整理(一)>中有提到消费者的消费形式,说明如下: .每个consumer属于一个consumer group,可以指定组id.group.id .消费形式: 组内:组内的消费者消费同一份数据:同时只能有一个consumer消费一个Topic中的1个partition: 一个consumer可以消费多个partitions中的消息.所以,对于一个topic,同一个group中推荐不能有多于 partitions个数的consumer同时消费,否则将意…
初识kafka https://www.cnblogs.com/wenBlog/p/9550039.html 简介 Kafka经常用于实时流数据架构,用于提供实时分析.本篇将会简单介绍kafka以及它为什么能够广泛应用. kafka的增长是爆炸性的.2017年超过三分之一的世界五百强公司在使用kafka.这其中很多公司每天通过kafka处理超过TB级别的数据.kafka被用于实时数据流.收集大数据或者做一些实时分析.kafka是也为基于内存的微服务提供数据持久化并把数据传输给复杂的事件流系统和I…
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也演变为一个分布式的流处理平台,这一点就是很厉害的了.所以,学习kafka对于大数据的小伙伴们来说,是非常有益的. (一)Kafka概述 1.Kafka是一个分布式的流处理平台,有消息的订阅系统(订阅之后,一旦有新的消息产生,你就会收到消息),可以以多副本的方式进行存储,可以构建实时数据管道,以及实时…
0x00 概述 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka的性能测试报告. 0x01 性能测试及集群监控工具 Kafka提供了非常多有用的工具,如Kafka设计解析(三)- Kafka High Availability (下)中提到的运维类工具——Partition Reassign Tool,Preferred Replica Leader Elect…
目录 一.初识Kafka 1 apache kafka简介 2 消息中间件kafka的使用场景 2.1 订阅与发布队列 2.2 流处理 3 kafka对数据的管理形式 4 kafka基础架构 5 Kafka的主题(topics)和日志(logs) 5.1 消息发布端 5.2 消息消费端 6 生产者&消费者&消费者组 7 顺序写入和Zero-copy(高性能之道) 7.1 写入性能提升之道(顺序写和mmap) 7.2 消费性能提升之道(zero-copy) 本章小结 一.初识Kafka 1…
参数的设定:参考资料 不错的资料:http://blog.csdn.net/honglei915/article/details/37697655 http://developer.51cto.com/art/201501/464491.htm 注意:在配置文件server.properties中指定了partition的数量num.partitions.这指的是多单个topic的partition数量之和.若有多个broker,可能partition分布在不同的节点上,则多个broker的所有…
参考资料:http://blog.csdn.net/honglei915/article/details/37563647参数说明:http://ju.outofmemory.cn/entry/119243参数说明/Demo:http://www.aboutyun.com/thread-9906-1-1.htmlKafka+Spark:  http://shiyanjun.cn/archives/1097.htmlhttp://ju.outofmemory.cn/entry/84636 1. K…
部署: http://www.cnblogs.com/likehua/p/3999538.html http://blog.csdn.net/kimmking/article/details/8263057 http://my.oschina.net/ielts0909/blog/93190Demo: http://blog.csdn.net/honglei915/article/details/37563647 1)下载kafka0.8(http://kafka.apache.org/down…
Kafka提供的所有度量指标都是通过JMX(Java Management Extensions)接口访问 JMX端口查询:  zookeeper上获取端口信息  /brokers/ids/<ID>节点包含json格式的broker信息,里面含有JMX对应的主机名和端口 JMX接口提供的是内部度量指标,第三方程序提供的则是外部度量指标 应用程序健康检测: 使用外部进程来报告broker的运行状态(健康检测) 在broker停止发送度量指标时发出告警(stale度量指标) broker度量指标…
0x00 概述 在之前的博客中,介绍了Kafka Web Console这 个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者.消费者.ZooKeeper建立大量连接,从而导致网络阻塞.并且这个 Bug也在其他使用者中出现过,看来使用开源工具要慎重!该Bug暂未得到修复,不得已,只能研究下其他同类的Kafka监控软件. 通过研究,发现主流的三种kafka监控程序分别为: Kafka Web Conslole Kafka Manager KafkaOffsetMonito…
0x00 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失.而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对于Failover机制的需求非常高.因此,Kafka从0.8开始提供High Availability机制.本文…
一.准备工作 1. 安装JDK 可以用命令 java -version 查看版本…
中文文档 目录 kafka的优势 首先几个概念 kafka的四大核心API kafka的基本术语 主题和日志(Topic和Log) 每个分区都是一个顺序的,不可变的队列,并且可以持续的添加,分区中的每个消息都被分配了一个偏移量(offset),相当于下标,在每个分区中这个偏移量都是唯一的 kafka集群的图示 kafka集群的主分区和备份 pritition如何持久化数据 消费者组 分布式(Distribution) Geo-Replication(异地数据同步技术) 生产者(Producers…
目录 一.Kafka环境搭建和Topic管理 1 单机环境搭建 1.1 环境准备 1.1.1 JDK 安装 1.1.2 配置主机名和ip 1.1.3 关闭防火墙和防火墙开机自启动 1.1.4 zookeeper下载安装 1.1.5 kafka下载安装 2 集群环境搭建 2.1 安装JDK 2.2 配置每台机器的配置 2.3 关闭三台机器的防火墙 2.4 配置集群网络时钟同步 2.5 zookeeper集群安装和搭建 3.6 集群安装Kafka 3 集群环境下topic管理概览 1.创建topic…
接下来的这些博客,主要内容来自<Learning Apache Kafka Second Edition>这本书,书不厚,200多页.接下来摘录出本书中的重要知识点,偶尔参考一些网络资料,并伴随着一些动手实践,算是一篇读书笔记吧. 本文是第一篇,主要从整体上梳理Kafka的基本架构和原理. 一.什么是Kafka Kafka是一个开源的,分布式的消息发布和订阅系统,它由Producer, Consumer和Broker组成.使用Kafka可以实时传递和处理一些Message.总的来说,Kafka…
基本概念的总结 在基本的Kafka架构中,producer将消息发布到Kafka话题中,一个Kafka话题通常指消息的类别或者名称,Kafka话题被集群中一个充当Kafka server角色的 broker创建.Kafka broker用来存储消息,consumer可以订阅一个或者多个话题来获取话题中的消息.其中Kafka brokers用Zookeeper来获取消息状态, 而Kafka consumers则利用Zookeeper来跟踪消息的offset.具体如下图所示: 上图是一个只有一个Ka…
Storm上游数据源之Kakfa 目标: 理解Storm消费的数据来源.理解JMS规范.理解Kafka核心组件.掌握Kakfa生产者API.掌握Kafka消费者API.对流式计算的生态环境有深入的了解,具备流式计算项目架构的能力. 大纲: 1.  kafka是什么? 2.  JMS规范是什么? 3.  为什么需要消息队列? 4.  Kafka核心组件 5.  Kafka安装部署 6.  Kafka生产者Java API 7.  Kafka消费者Java API 内容 1.Kafka是什么 在流式…
现在从事java开发的同学,不论是在面试过程中还是在日常的工作中,肯定会碰到消息队列的情况,市面上消息队列有很多:kafka.rocketMQ.rabbitMQ.zeroMQ等,从本篇博客起计划分享一些kafka方面的知识. 消息队列基础知识 所谓消息队列很好理解,把它拆开来看就是消息和队列,消息这里不是一般意义上的消息,这里是广义的,你可以理解为一个个的订单信息.学生信息.一个个的短信等:队列就很好理解了,学过计算机的人都知道就是一个先进先出的线性数据结构.好了,理解了消息队列下面看下消息队列…
一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 slave2 具体请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 2. 安装zookeeper分布式集群 具体请参考<Kafka:ZK+Kafka+Spark Streaming集…
Kafka消费者 从Kafka中读取数据 最近有需求要从kafak上消费读取实时数据,并将数据中的key输出到文件中,用于发布端的原始点进行比对,以此来确定是否传输过程中有遗漏数据. 不废话,直接上代码,公司架构设计 kafak 上有多个TOPIC,此代码每次需要指定一个TOPIC,一个TOPIC有3个分区Partition,所以消费的时候用多线程, 读取数据过程中直接过滤重复的key点,因为原始推送点有20W的量(可能发生在一秒或者几秒).当时我直接用的HASHMAP来过滤. 1.Consum…
1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Docker.今天,我们将讨论Kafka Workflow.此外,我们将详细介绍Pub-Sub Messaging的工作流程以及Queue Messaging / Consumer Group的工作流程.此外,我们将看到ZooKeeper在Apache Kafka中的作用.那么,让我们从Kafka Workflow开始吧. Apache Kafka工作流程| Kafka Pub-Sub Messaging 2.什么是Kafka Wor…
kafka?kafaka! Kafka... kafka是什么? 答:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据.它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统.(百度的,大白话一大句.读完一脸懵圈) kafka的基本术语? 答: 消息:kafka中的数据单元被称为消息,也…