08 2018 档案

摘要:转载自 huxihx,原文链接 关于Kafka监控方案的讨论 目前Kafka监控方案看似很多,然而并没有一个“大而全”的通用解决方案。各家框架也是各有千秋,以下是我了解到的一些内容: 一、Kafka manager Github地址: https://github.com/yahoo/kafka-m 阅读全文
posted @ 2018-08-28 23:57 写出高级BUG 阅读(560) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现 本文是翻译作品,作者是Piotr Nowojski和Michael Winters。前者是该方案的实现者。 原文地址是An Overview of End-to-End Exactly-Once 阅读全文
posted @ 2018-08-28 23:41 写出高级BUG 阅读(1125) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka水位(high watermark)与leader epoch的讨论 本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的。简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epo 阅读全文
posted @ 2018-08-27 23:12 写出高级BUG 阅读(2893) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 关于Kafka幂等producer的讨论 众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS)。Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单个分区的消息只会发送一次, 阅读全文
posted @ 2018-08-26 22:55 写出高级BUG 阅读(493) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Apache Flink Kafka consumer Flink提供了Kafka connector用于消费/生产Apache Kafka topic的数据。Flink的Kafka consumer集成了checkpoint机制以提供精确一次的处理语义。在具体的实现 阅读全文
posted @ 2018-08-26 22:43 写出高级BUG 阅读(5669) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka consumer group位移重设 本文阐述如何使用Kafka自带的kafka-consumer-groups.sh脚本随意设置消费者组(consumer group)的位移。需要特别强调的是, 这是0.11.0.0版本提供的新功能且只适用于新版本con 阅读全文
posted @ 2018-08-26 22:24 写出高级BUG 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka与Flink集成 Apache Flink是新一代的分布式流式数据处理框架,它统一的处理引擎既可以处理批数据(batch data)也可以处理流式数据(streaming data)。在实际场景中,Flink利用Apache Kafka作为上下游的输入输出十 阅读全文
posted @ 2018-08-26 22:07 写出高级BUG 阅读(753) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka 0.11客户端集群管理工具AdminClient 很多用户都有直接使用程序API操作Kafka集群的需求。在0.11版本之前,kafka的服务器端代码(即添加kafka_2.**依赖)提供了AdminClient和AdminUtils可以提供部分的集群管理 阅读全文
posted @ 2018-08-26 20:36 写出高级BUG 阅读(693) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 【原创】Kafka 0.11消息设计 目录 一、Kafka消息层次设计 1. v1格式 2. v2格式 二、v1消息格式 三、v2消息格式 四、测试对比 Kafka 0.11版本增加了很多新功能,包括支持事务、精确一次处理语义和幂等producer等,而实现这些新功能 阅读全文
posted @ 2018-08-26 18:02 写出高级BUG 阅读(1682) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka controller重设计 目录 一、Controller是做什么的 二、Controller当前设计 三、Controller组成 四、Controller当前问题 1. 需要在多线程间共享状态 2. 代码组织混乱 3. 管理类请求与数据类请求未分离 4 阅读全文
posted @ 2018-08-26 16:48 写出高级BUG 阅读(367) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka producer介绍 Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer。本文着重讨论新版本producer的设计原理以及基本的使用方法。 目录 一、基本数据结构 1. ProducerRecord 2. 阅读全文
posted @ 2018-08-26 15:03 写出高级BUG 阅读(547) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少。最近Kafka社区邮件组已经在讨论是否应该正式使用新版本consumer替换老版本,笔者也觉得时机成熟了,于是写下 阅读全文
posted @ 2018-08-26 14:10 写出高级BUG 阅读(1370) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka 如何读取offset topic内容 (__consumer_offsets) 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_off 阅读全文
posted @ 2018-08-25 23:00 写出高级BUG 阅读(1425) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka无消息丢失配置 目录 一、Producer端二、Consumer端 Kafka到底会不会丢数据(data loss)? 通常不会,但有些情况下的确有可能会发生。下面的参数配置及Best practice列表可以较好地保证数据的持久性(当然是trade-off 阅读全文
posted @ 2018-08-25 15:31 写出高级BUG 阅读(496) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka如何创建topic? 目录 一、命令行部分 二、后台逻辑部分 Kafka创建topic命令很简单,一条命令足矣: 这条命令会创建一个名为test的topic,有3个分区,每个分区需分配3个副本。那么在这条命令之后Kafka又做了什么事情呢?本文将对此进行一下 阅读全文
posted @ 2018-08-25 15:12 写出高级BUG 阅读(4319) 评论(0) 推荐(0) 编辑
摘要:转载自 huxihx,原文链接 Kafka副本管理—— 为何去掉replica.lag.max.messages参数 在Kafka设计解析(二)Kafka High Availability (上)文中的ACK前需要保证有多少个备份小节说到,如果一个Follower宕机,或者落后太多,Leader将 阅读全文
posted @ 2018-08-25 14:18 写出高级BUG 阅读(782) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(八)- Exactly Once语义与事务机制原理 本文介绍了Kafka实现事务性的几个阶段——正好一次语义与原子操作。之后详细分析了Kafka事务机制的实现原理,并介绍了Kafka如何处理事务相关的异常情况,如Transaction Coordina 阅读全文
posted @ 2018-08-23 23:36 写出高级BUG 阅读(908) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream。接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集 阅读全文
posted @ 2018-08-23 01:40 写出高级BUG 阅读(21869) 评论(0) 推荐(1) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(六)- Kafka高性能架构之道 本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能。包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sen 阅读全文
posted @ 2018-08-22 23:30 写出高级BUG 阅读(1440) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka的性能 阅读全文
posted @ 2018-08-22 22:23 写出高级BUG 阅读(888) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(四)- Kafka Consumer设计解析 目录 一、High Level Consumer 1. Consumer Group 2. High Level Consumer Rebalance 三、Low Level Consumer 四、Cons 阅读全文
posted @ 2018-08-19 21:27 写出高级BUG 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(三)- Kafka High Availability (下) 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除, 阅读全文
posted @ 2018-08-19 11:45 写出高级BUG 阅读(741) 评论(0) 推荐(0) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(二)- Kafka High Availability (上) Kafka从0.8版本开始提供High Availability机制,从而提高了系统可用性及数据持久性。本文从Data Replication和Leader Election两方面介绍了K 阅读全文
posted @ 2018-08-18 21:48 写出高级BUG 阅读(886) 评论(0) 推荐(1) 编辑
摘要:转载自 技术世界,原文链接 Kafka设计解析(一)- Kafka背景及架构介绍 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比。并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不同消息分发方式,Topic & P 阅读全文
posted @ 2018-08-18 19:00 写出高级BUG 阅读(988) 评论(0) 推荐(0) 编辑
摘要:前言 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。经常使用适当的虚拟机监控和分析的工具可以加快我们分 阅读全文
posted @ 2018-08-15 23:56 写出高级BUG 阅读(11704) 评论(1) 推荐(2) 编辑
摘要:前言 垃圾收集器(Garbage Collection)通常被成为GC,诞生于1960年MIT的Lisp语言。上一篇介绍了Java运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而执行着出栈和入栈操作,实现了内存的自动清理。因此 阅读全文
posted @ 2018-08-14 23:03 写出高级BUG 阅读(647) 评论(0) 推荐(2) 编辑
摘要:前言 对于从事C、C++程序开发的开发人员来说,在开始使用对象之前,他们都需要使用new关键字为对象申请内存空间,在使用完对象之后,也需要使用delete关键字来释放对象占用的内存空间。对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作是写匹配的delete/fre 阅读全文
posted @ 2018-08-13 23:37 写出高级BUG 阅读(870) 评论(1) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、创建事务 1. 获取事务 2. 处理已经存在的事务 3. 准备事务信息 二、回滚处理 1. 回滚条件 2. 回滚处理 3. 回滚后的信患清除 三、事务提交 Transact 阅读全文
posted @ 2018-08-11 22:51 写出高级BUG 阅读(2585) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、注册 InfrastructureAdvisorAutoProxyCreator 二、获取对应class/method的增强器 1. 寻找候选增强器 2. 候选增强器中寻找 阅读全文
posted @ 2018-08-11 16:44 写出高级BUG 阅读(1853) 评论(1) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、创建数据表结构 二、创建对应数据表的PO 三、创建表与实体间的映射 四、创建数据操作接口 五、创建数据操作接口实现类 六 、创建Spring配置文件 七、测试 Spring 阅读全文
posted @ 2018-08-09 22:50 写出高级BUG 阅读(384) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、processPropertyPlaceHolders属性的处理 二、根据配置属性生成过滤器 三、扫描Java文件 我们在applicationContext.xml中配置 阅读全文
posted @ 2018-08-09 01:10 写出高级BUG 阅读(5375) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、MapperFactoryBean的初始化 二、获取 MapperFactoryBean 的实例 为了使用MyBatis功能,示例中的Spring配置文件提供了两个bean 阅读全文
posted @ 2018-08-08 22:18 写出高级BUG 阅读(2094) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、SqlSessionFactoryBean的初始化 二、获取 SqlSessionFactoryBean 实例 通过Spring整合MyBatis的示例,我们感受到了Spr 阅读全文
posted @ 2018-08-08 21:34 写出高级BUG 阅读(7634) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 了解了MyBatis的独立使用过程后,我们再看看它与Spring整合的使用方式,比对之前的示例来找出Spring究竟为我们做了哪些操作来简化程序员的业务开发。由于在之前示例基础上做更 阅读全文
posted @ 2018-08-08 01:14 写出高级BUG 阅读(666) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并且改名为MyBat 阅读全文
posted @ 2018-08-07 23:54 写出高级BUG 阅读(1317) 评论(1) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、获取增强器 1. 普通增强器的获取 2. 增加同步实例化增强器 3. 获取DeclareParents注解 二、寻找匹配的增强器 三、创建代理 1. 创建代理 2. 获取代 阅读全文
posted @ 2018-08-07 07:58 写出高级BUG 阅读(833) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 之前讲过Spring中的自定义注解,如果声明了自定义的注解,那么就一定会在程序中的某个地方注册了对应的解析器。我们搜索整个代码,尝试找到注册的地方,全局搜索后我们发现了在AopNam 阅读全文
posted @ 2018-08-05 17:01 写出高级BUG 阅读(746) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 我们知道,使用面向对象编程(OOP)有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的 阅读全文
posted @ 2018-08-05 14:04 写出高级BUG 阅读(656) 评论(0) 推荐(0) 编辑
摘要:前言 在JDK1.7&1.8源码对比分析【集合】HashMap中我们对比分析了JDK1.7和1.8版本的HashMap源码,趁热打铁,这篇文章就来看看JDK1.7和1.8版本的ConcurrentHashMap有哪些区别。 目录 一、对比分析 1. 1.7版本 2. 1.8版本 一、对比分析 1. 阅读全文
posted @ 2018-08-04 21:48 写出高级BUG 阅读(1052) 评论(0) 推荐(0) 编辑
摘要:前言 在JDK1.7&1.8源码对比分析【集合】HashMap中我们遗留了一个问题:为什么HashMap在调用resize() 方法时会出现死循环?这篇文章就通过JDK1.7的源码来分析并解释这个问题。 如下,并发场景下使用HashMap造成Race Condition,从而导致死循环,现象是CPU 阅读全文
posted @ 2018-08-04 16:45 写出高级BUG 阅读(1216) 评论(0) 推荐(0) 编辑
摘要:前言 在JDK1.8源码分析【集合】HashMap文章中,我们分析了HashMap在JDK1.8中新增的特性(引进了红黑树数据结构),但是为什么要进行这个优化呢?这篇文章我们通过对比JDK1.7和1.8来分析优化的原因。 众所周知,HashMap底层是基于 数组 + 链表 的方式实现的,不过在JDK 阅读全文
posted @ 2018-08-04 12:09 写出高级BUG 阅读(3141) 评论(0) 推荐(0) 编辑
摘要:上一篇讲述了Oracle的SELECT语法的执行顺序,这篇讲述MySQL的SELECT语法的执行顺序。MySQL的SELECT语法的执行顺序和Oracle的基本相同,只是增加了MySQL独有的LIMIT语法。 目录 一、SELECT语句的处理过程 1. FROM阶段 2. WHERE阶段 3. GR 阅读全文
posted @ 2018-08-02 22:27 写出高级BUG 阅读(10295) 评论(3) 推荐(5) 编辑
摘要:转载自:小强斋太-Study Notes,原文链接 从join on和where执行顺序认识T-SQL查询处理执行顺序 目录 一、样例 二、SELECT语句的处理过程 1. FROM阶段 2. WHERE阶段 3. GROUP BY阶段 4. HAVING阶段 5. SELECT阶段 6. ORDE 阅读全文
posted @ 2018-08-02 21:50 写出高级BUG 阅读(7889) 评论(0) 推荐(0) 编辑
摘要:转载自:Oo若离oO,原文链接 在MySQL中使用explain查询SQL的执行计划 目录 一、什么是执行计划 二、如何分析执行计划 一、什么是执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑 阅读全文
posted @ 2018-08-02 12:45 写出高级BUG 阅读(443) 评论(0) 推荐(0) 编辑
摘要:目录 一、什么是执行计划 二、如何查看执行计划 三、如何读懂执行计划 1. 执行顺序的原则 2. 执行计划中字段解释 3. 谓词说明 4. JOIN方式 4.1 HASH JOIN(散列连接) 4.2 SORT MERGE JOIN(排序合并连接) 4.3 NESTED LOOP(嵌套循环连接) 5 阅读全文
posted @ 2018-08-02 00:54 写出高级BUG 阅读(2353) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示