![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kafka
wandy0211
这个作者很懒,什么都没留下…
展开
-
kafka
kafka —a distributed streaming platfformPUBLISH & SUBSCRIBERead and write streams of data like a messaging system.Learn more »PROCESSWrite scalable stream processing appli原创 2017-11-17 11:23:05 · 194 阅读 · 0 评论 -
kafka源码分析---NIO
我们直接跑到最底层,看看kafka的网络层处理是怎么处理的。因为Java的NIO还是偏底层,不能直接用来做应用开发,所以一般都使用像netty的框架或者按照自己的需要封装一些nio,让上层业务不用关心网络处理的细节,只需要创建服务监听端口、接受请求、处理请求、写返回就可以了。我在看netty、thrift等涉及到网络的Java框架时比较喜欢去看他们的nio是怎么封装的,这里也是能够体现作者水平的地...转载 2019-04-28 16:07:23 · 335 阅读 · 0 评论 -
kafka源码分析--kafkaconsumer
KafkaConsumer 对于多线程访问是不安全的,通过使用acquire()跟release()方法来操作AtomicLong currentThread字段(保存当前访问线程ID), 有多个线程同时访问抛出ConcurrentModificationException, 来防止对个线程同时访问。核心组件ConsumerCoordinator: 消费者的协调者, 管理消费者的协调过程...转载 2019-04-28 16:45:50 · 143 阅读 · 0 评论 -
kafka源码分析---kafkaconsumer分析
从图中可以看出Consumer和ConsumerGroup之间的关系,即一个Consumer对应一个ConsumerGroup,一个ConsumerGroup包含多个Consumer。另外,一个ConsumerGroup中的不同Consumer只能消费不同的Partition,跨ConsumerGroup中的Consumer则没有这个限制,即ConsumerA1和ConsumerB1可以消费同...原创 2019-04-28 16:47:35 · 246 阅读 · 0 评论 -
kafka学习--kafka connect源码研究
在大数据领域工作了5年了,大数据应用面领着诸多问题,其中最主要的问题之一是数据源的多样性,要将各种数据源的数据统一抽取到hadoop平台,面临这复杂的代码编写或者多种工具部署测试运维,无形中增加了数据使用的门槛。 为了降低数据使用的门槛,公司急需一个数据管理平台,能够实现各种数据源的配置化开发,数据监控,元数据管理以及数据链路跟踪问题。本人打算基于kafka 和ka...原创 2019-07-15 16:27:21 · 897 阅读 · 3 评论 -
kafk学习----kafka connect 认知
kafka Connect定义:Kafka Connect是一种用于管理Kafka connectors的通用框架。Kafka connectors在Kafka和其他系统之间可扩展的、可靠的流式传输数据的工具,可以更快捷和简单地将大量数据集合移入和移出Kafka的连接器。 Kafka Connect提供的是以数据管道为中心的业务抽象。在Kafka Connect里有两个核心概念:...原创 2019-08-27 11:25:56 · 523 阅读 · 0 评论 -
kafka学习--kafka connect部署
1. 部署独立模式的kafka connect 在独立模式下,所有工作都在一个进程中执行。这种配置更容易设置和开始,但是不会从kafka connect集群特性中获益。启动脚本如下:> bin/connect-standalone.sh config/connect-standalone.properties connector1.properties [connector2....原创 2019-08-27 11:29:48 · 1312 阅读 · 0 评论 -
kafka学习--使用kafka conect操作kafka connector
1. 配置kafka connectorskafka connectors配置是简单的键值映射。对于独立模式,这些在属性文件中定义,并传递到命令行上的kafka Connect进程。在分布式模式下,它们将包含在JSON有效负载中,用于创建(或修改)kafka connectors的请求。大多数配置都依赖于kafka connectors,因此不能在这里列出它们。然而,有几个常见的选择:...原创 2019-08-27 11:31:31 · 1110 阅读 · 0 评论 -
kafka学习--- 使用kafka connect监控kafka connectors
监控指标运行状态数据流量(处理,挤压,异常)原创 2019-08-27 11:33:00 · 973 阅读 · 0 评论 -
kafka学习----kafka connectors开发
kafka connectors开发1. 核心概念:1.开发source2.开发sink原创 2019-08-27 11:40:12 · 149 阅读 · 0 评论 -
kafka学习--kafka connect架构
kafka connect架构原创 2019-08-27 14:14:30 · 578 阅读 · 0 评论 -
kafka学习 --- kafka confluent platform部署
Confluent Platform是一个流媒体平台,通过一个可靠的高性能系统,您可以组织和管理来自多个不同来源的数据。Confluent提供了业界唯一的企业级事件流平台,为应用程序和数据基础设施提供了一个新的范例。使用Confluent平台,您可以将数据作为持续更新的事件流,而不是作为离散快照。Confluent Platform通过将来自多个源和位置的数据集成到您公司的一个中央事件流媒...原创 2019-08-29 06:51:46 · 459 阅读 · 1 评论 -
kafka源码分析--- server acceptor
// Create and start the socket server acceptor threads so that the bound port is known.// Delay starting processors until the end of the initialization sequence to ensure// that credentials have be...原创 2019-04-23 21:33:46 · 150 阅读 · 0 评论 -
kafka源码分析--- log管理
/* start log manager */logManager = LogManager(config, initialOfflineDirs, zkClient, brokerState, kafkaScheduler, time, brokerTopicStats, logDirFailureChannel)logManager.startup()原创 2019-04-23 21:33:03 · 177 阅读 · 0 评论 -
kafka源码分析--- quota管理
kafka的配额机制,主要作用于每个producer或者consumer,可以对他们produce或者consum的速度上限作出限制.这其实对应着kafka中的两个线程,限制producer的线程,以及限制consumer的线程!具体kafka是如何使用delayQueue来实现Quato功能的,在我刚才给的那个链接里提到了,每一次broker发送response时都会记录下当前consu...原创 2019-04-23 21:32:29 · 682 阅读 · 0 评论 -
Kafka 简介
Kafka是一个分布式的流处理平台,有三个关键的功能:1. 发布/订阅消息流,类似于消息队列或者企业消息系统2. 容错持久的消息存储3. 实时产生数据流的处理Kafka通常用于两大类应用程序:1. 构建实时的流数据处理管道用来从系统或应用可靠地获取数据2. 构建实时流处理程序以处理流数据的处理和转换Kafka运行在跨数据中心的多个服务器上Kafka以topics为类别存储数据流记录每个流记录都...原创 2018-05-28 14:32:12 · 481 阅读 · 0 评论 -
kafka start
Step 1: Download the codeDownload the 1.1.0 release and un-tar it.12> tar -xzf kafka_2.11-1.1.0.tgz> cd kafka_2.11-1.1.0Step 2: Start the server> bin/zookeeper-server-start.sh config/zookeepe...原创 2018-05-28 14:48:16 · 292 阅读 · 0 评论 -
kafka 设计
1. Motivation(动机) 设计Kafka作为一个统一的平台来处理大公司可能拥有的所有实时数据: 1. 必须有高吞吐量来支持高容量事件流 2. 优雅地处理大数据积压,以便能够支持离线系统的周期性数据负载 3. 系统将不得不处理低延迟交付,以处理更传统的消息用例 4. 系统必须能够保证在出现机器故障时的容错。支持这些用途使我们设计了一些独特的元素,更类似于数据库日志,而不是传统...原创 2018-05-28 16:10:10 · 277 阅读 · 0 评论 -
kafka源码分析---NIO网络通信模型
kafka网络通信架构:Kafka的网络通信模型是基于NIO的Reactor多线程模型来设计的。这里先引用Kafka源码中注释的一段话:An NIO socket server. The threading model is1 Acceptor thread that handles new connections.Acceptor has N Processor threads t...原创 2019-04-26 18:54:39 · 467 阅读 · 0 评论 -
kafka源码分析---代码模块
kafka主要模块代码如上图所示:admin:管理员模块,操作和管理topic,paritions相关,包含create,delete topic,扩展patitionsapi:cluster:common:consumer:controller:coordinator:log:message:metrics:network:security:...原创 2019-04-23 16:00:04 · 186 阅读 · 0 评论 -
kafka源码分析---kafka启动流程
kafka的启动是:kafka.kafka。主要代码如下:def main(args: Array[String]): Unit = { try { val serverProps = getPropsFromArgs(args) val kafkaServerStartable = KafkaServerStartable.fromProps(serverP...原创 2019-04-23 17:15:53 · 749 阅读 · 0 评论 -
kafka源码分析--初衷
最近领导将kafka交给我维护,平时运行比较稳定,偶尔还是会出问题。由于以前只停留在kafka api调用和简单原理层级,对生产kafka出现问题很难定位,经常很尴尬被动。本人不喜欢被动,所以打算抽一周时间将kafka源码简单通读一遍。提升对kafka的认知,便于更快更准得定位解决问题!目前的公司使用kafka1.0,所以这次计划做一个kafka1.0的详细介绍,会涉及里面的一些代码实现。...原创 2019-04-23 17:29:29 · 182 阅读 · 0 评论 -
kafka源码分析--- KafkaProducer分析
一.KafkaProducer 简介:KafkaProducer是线程安全对象,建议可以将其封装成多线程共享一个实例,效率反而比多实例更高!如下是我写的producer测试类:package com.jffox.cloud.saas.main;import org.apache.kafka.clients.consumer.ConsumerRecord;import org....原创 2019-04-28 10:31:24 · 330 阅读 · 0 评论 -
kafka源码分析--- zk注册
kafka启动第一步是生成zkclient,然后连接zk服务器,创建通用节点及注册brokerinfo相关操作! 我们就先从zookeeper相关操作类开始!kafka操作zookeeper得主要类如下图:ZookeeperClient:流水线请求的ZooKeeper客户端。KafkaZkClient: 基于ZookeeperClient构建的特定于kafka操作的客户端!...原创 2019-04-23 19:58:55 · 960 阅读 · 0 评论 -
kafka源码分析--- server config
kafka server的配置类主要有:kafkaconfig: kafka基础配置DynamicConfig: 动态配置接口类:DynamicConfigManager: DynamicBrokerConfig:ConfigHandler:用于处理DynamicConfigManager接收到的配置更改通知...原创 2019-04-23 20:51:43 · 172 阅读 · 0 评论 -
kafka源码分析--- scheduler分析
kafka scheduler用于运行作业的调度程序。控制一个在后台定期重复执行或者延迟调度的作业!主要有一下操作:初始化任务以便可以接受任务调度def startup()当任务调度完成关闭。def shutdown() 延迟队列实现调度任务:def schedule(name: String, fun: ()=>Unit, delay: Long = 0, period:...原创 2019-04-23 21:25:52 · 370 阅读 · 0 评论 -
kafka源码分析--- metrics管理
/* create and configure metrics */val reporters = new util.ArrayList[MetricsReporter]reporters.add(new JmxReporter(jmxPrefix))val metricConfig = KafkaServer.metricConfig(config)metrics = new Metr...原创 2019-04-23 21:31:19 · 318 阅读 · 0 评论 -
KSQL和Flink SQL的比较
Confluent公司于2017年11月宣布KSQL进化到1.0版本,标志着KSQL已经可以被正式用于生产环境。自那时起,整个Kafka发展的重心都偏向于KSQL——这一点可以从Confluent官方博客中KSQL出现的频率之高看出端倪。鉴于最近周围有很多小伙伴都在讨论KSQL,我突然想起了去年9月份Apache Flink“掌门人” Stephan Ewen所写的关于KSQL V.S. ...转载 2019-08-29 09:27:47 · 748 阅读 · 0 评论