自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Vision

平凡,是为了最美的荡气回肠!

  • 博客(394)
  • 收藏
  • 关注

原创 Druid middleManager如何获取task信息并启动Peon进程

前言 继前一篇文章关于task被overload分配到zk上的流程分析,那么MiddleManager又是如何获取到zk上的task信息并启动Peon来真正运行起task的呢?上图 overload将task信息放到zk上之后,middleManager会有监听管理器WorkerTaskMonitor, 该监听管理器会启动一个操作zk的类PathChildrenCache来持续监听zk相关路径下的信息变动。 middlemana...

2022-04-01 19:17:27 848

原创 Druid Task被Overload分配到zk上的流程分析

前言 继前一篇文章关于task被supervisor创建的过程分析,那么task被创建后是怎样分配给zk的呢?task选择middlemanager的策略又是什么?上图 supervisor创建完task后,会将task扔到一个由TaskMaster创建的TaskQueue中。此后的事情就是如果将TaskQueue中的task进行分配运行了。 TaskQueue会启动一个线程一直运行,用来读取taskqueue队列中的tasks,对于已经准备好的tas...

2022-03-03 12:05:58 407

原创 Druid Supervisor启动task流程分析

前言 继前一篇文章关于supervisor启动流程分析的启动过程,然后来分析一下supervisor启动后是如何启动并管理task的运行的。又是如何将KafkaTask的对象创建的。上图创建完持续执行的supervisor线程后,紧接着通过一个定时的单线程池来创建RunNotice()对象并放入notice队列中供supervisor进行poll并运行handle()方法。定时的时间则是配置的task的运行周期,默认是1秒。当supervisor获取到RunNo...

2022-01-04 16:52:00 544

原创 Druid kafka-index KafkaRecordSupplier详解

前言 继上一篇关于suervisor启动流程的文章,发现一了关于kafkaRecordSupplier的一些疑问。本篇就单独拎出这个类来看一下做的什么事情。 首先KafkaRecordSupplier是干什么用的?它主要是操作kafka数据真正执行的地方,比如拉取kafka数据的poll函数在这个类里面实现的。 KafkaRecordSupplier继承了RecordSupplier, 而RecordSupplier只有kafka和Kinesis两个地方做了具体的实现,Reco...

2021-12-13 16:22:20 1353

原创 Druid kafka-index supervisor启动流程分析

前言 在维护druid服务的过程中,我们的物化视图的supervisor状态总是发生异常,通过日志以及MR程序的情况来看,目前猜测是因为yarn资源问题导致的这一现状。虽然现在通过脚本监控的形式来保证物化视图supervisor异常时重新拉起而不会产生物化视图延迟(尤其是晚上发生异常)。但是不能明确为什么supervisor的执行流程。因此本着探究supervisor的心态,因为kafka-index supervisor比较成熟且经典,于是先研究下kafka-index supervisor先熟..

2021-12-10 16:05:25 1962

原创 Druid源码目录解释

benchmarks 基准测试模块cloud 对接亚马逊和谷歌云的模块core 核心包,主要包括druid的基础组件定义dev 开发者需要关注的内容distribution 发布描述,dockerfile的创建开发等docs 文档examples druid的目录文件事例(bin/conf/quickstart)extendedset 扩展集合 conciseSetextensions-contrib 社区贡献的扩展插件 ambari-metrics=emitter 监控指标扩...

2021-12-08 10:41:06 530

原创 leetcode-跳跃游戏

给定一个非负整数数组nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最...

2021-10-26 18:02:30 4266

原创 leetcode-可能的二分法

给定一组N人(编号为1, 2, ..., N),我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组。当可以用这种方法将所有人分进两组时,返回 true;否则返回 false。示例 1:输入:N = 4, dislikes = [[1,2],[1,3],[2,4]]输出:true解释:group1 [1,4], group2 [2,3]...

2021-10-21 10:33:22 139

原创 leetcode-分裂二叉树的最大乘积

给你一棵二叉树,它的根为root 。请你删除 1 条边,使二叉树分裂成两棵子树,且它们子树和的乘积尽可能大。由于答案可能会很大,请你将结果对 10^9 + 7 取模后再返回。示例 1:输入:root = [1,2,3,4,5,6]输出:110解释:删除红色的边,得到 2 棵子树,和分别为 11 和 10 。它们的乘积是 110 (11*10)示例 2:输入:root = [1,null,2,3,4,null,null,5,6]输出:90解释:移除红色的边,得到...

2021-10-20 09:56:15 94

原创 leetcode - 二叉树剪枝

给定二叉树根结点root,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例2:输入: [1,0,1,0,0,0,1]输出: [1,null,1,null,1]示例3:输入: [1,1,0,1,...

2021-09-07 15:46:49 83

原创 leetcode-从根到叶的二进制数之和

给出一棵二叉树,其上每个结点的值都是0或1。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数01101,也就是13。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个 32 位 整数。示例 1:输入:root = [1,0,1,0,1,0,1]输出:22解释:(100) + (101) + (110...

2021-09-07 15:33:38 94

原创 leetcode-二叉树着色游戏

有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中,给出二叉树的根节点root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从1 到n各不相同。游戏从「一号」玩家开始(「一号」玩家为红色,「二号」玩家为蓝色),最开始时,「一号」玩家从 [1, n]中取一个值x(1 <= x <= n);「二号」玩家也从[1, n]中取一个值y(1 <= y <= n)且y != x。「一号」玩家给值为x的节点染上红色,而「二号」玩家给值为...

2021-09-03 11:52:57 173

原创 leetcode-寻找重复的子树

给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4下面是两个重复的子树: 2 / 4和 4因此,你需要以列表的形式返回上述重复子树的根结点。题解 寻找重复子树,那么需要判断...

2021-09-02 11:28:36 253

原创 leetcode - 最深叶节点的最近公共祖先

给你一个有根节点的二叉树,找到它最深的叶节点的最近公共祖先。回想一下:叶节点 是二叉树中没有子节点的节点树的根节点的深度为0,如果某一节点的深度为d,那它的子节点的深度就是d+1如果我们假定 A 是一组节点S的 最近公共祖先,S中的每个节点都在以 A 为根节点的子树中,且 A的深度达到此条件下可能的最大值。输入:root = [3,5,1,6,2,0,8,null,null,7,4]输出:[2,7,4]解释:我们返回值为 2 的节点,在图中用黄色标记。在图中用蓝色标...

2021-09-01 15:01:37 109

原创 leetcode- 数字序列中某一位的数字

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0限制:0 <= n <2^31找规律class Solution: def findNthDigit(self, n: int) -> int: di..

2021-08-30 15:29:05 88

原创 leetcode- K 个不同整数的子数组

给定一个正整数数组 A,如果 A的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定不同的子数组为好子数组。(例如,[1,2,3,1,2] 中有3个不同的整数:1,2,以及3。)返回A中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 2 个不同整数组成的子数组:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].示例 2:输入:A = [1,...

2021-08-26 11:43:23 109

原创 leetcode-数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000题解该题使用map的方式判断和使用先排序的方式判断就不多说了,主要看下摩尔投票法。其实我本来也没有想到这种办法,看了别人的题解后才知道的,说实话看官方的论证我也没有看懂。下面说下我的理解吧:根据题目加上摩尔投..

2021-08-25 11:22:23 131

原创 leetcode-每日温度

请根据每日 气温 列表 temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1,0]...

2021-08-23 12:30:41 132

原创 leetcode-分割字符串的方案数

给你一个二进制串s(一个只包含 0 和 1 的字符串),我们可以将 s分割成 3 个 非空字符串 s1, s2, s3 (s1 + s2 + s3 = s)。请你返回分割s的方案数,满足 s1,s2 和 s3 中字符 '1' 的数目相同。由于答案可能很大,请将它对 10^9 + 7 取余后返回。示例 1:输入:s = "10101"输出:4解释:总共有 4 种方法将 s 分割成含有 '1' 数目相同的三个子字符串。"1|010|1""1|01|01""10|10|...

2021-08-20 12:04:28 554

原创 leetcode-两个字符串的删除操作

给定两个单词word1和word2,找到使得word1和word2相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例:输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"提示:给定单词的长度不超过500。给定单词中的字符只含有小写字母题解要想步骤最少,即删除的字母最少,要想删除的字母最少,需要保证公共子串更长,于是转变为求最长公共子序列即可class Solution {pu...

2021-08-19 17:35:26 119

原创 leetcode-去除重复字母

给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cbacdcbc"输出:"acdb"提示:1 <= s.length <= 104s 由小写英文字母组成题解本题的问题是去重字母的过程中保留哪个的问题。最终想让保存下来的字母字典序最小,那么就需要保存下来的字母尽可能的出现在序列的位置上,比如a...

2021-08-19 17:16:11 168

原创 leetcode-检查数组对是否可以被 k 整除

原题链接:https://leetcode-cn.com/problems/check-if-array-pairs-are-divisible-by-k/给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n /2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例 1:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分.

2021-08-13 16:57:53 182

原创 leetcode-连续数组

原题链接:https://leetcode-cn.com/problems/contiguous-array/给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2:输入: nums = [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。.

2021-08-11 20:38:51 183

原创 Yarn运行原理了解

YARN运行原理yarn的前世今生首先在hadoop1.0版本中,存在的最大问题就是资源管理的问题!随着技术的发展,人们已经不在满足hadoop集群中只使用mapreduce一个计算框架,人们更希望有一套合理的管理机制来控制整个集群的资源。在hadoop中启动yarn的命令: ./start-yarn.shRescoueceManager 是全局资源管理器NodeManager 是节点资源任务管理器我们可以理解成RM和NM就是YarnYarn的基本架构Yarn在总体设计思想

2020-06-04 15:15:38 550

原创 Spring Boot笔记 -- 日志

一、日志1. 日志框架市面上的日志框架:JUL, JCL, log4j, log4j2, slf4j…日志门面: JCL, SLF4j, joss-logging日志实现:Log4j , Log4j2 , JUL , LogbackSpringBoot: 底层是Spring框架, Spring框架默认是用JCLSpringBoot选用SLF4j和Logback2. SLF4j使用1. 如何在系统中使用SLF4j以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而

2020-06-01 18:49:52 163

原创 Spring Boot笔记 -- 配置

打包运行 使用插件:spring-boot-maven-plugin打成jar包,直接执行jar就可以运行POM文件 父项目依赖:spring-boot-starter-parent -> spring-boot-dependencies spring boot的版本仲裁:以后我们导入依赖默认是不需要写版本的;没有在dependencies里面管理的依赖自然需要声明版本号 spring-boot-starter-web: sping boot st..

2020-06-01 18:48:24 134

原创 MaxWell 概述

MaxWell概述将mysql的binlog以json的形式输出到kafka,它的常见用例包括ETL,缓存建立/过期,指标收集,搜索索引和服务间通信json示例:mysql> update test.maxwell set daemon = 'firebus! firebus!' where id = 1; maxwell: { "database": "test", "table": "maxwell", "type": "update", .

2020-06-01 10:54:10 960

原创 leetcode - 1248. 统计「优美子数组」

原题链接:https://leetcode-cn.com/problems/count-number-of-nice-subarrays/题目:给你一个整数数组nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:..

2020-05-15 15:05:45 167

原创 leetcode - 560. 和为K的子数组

原题地址:https://leetcode-cn.com/problems/subarray-sum-equals-k/题目:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。题解:...

2020-05-15 12:15:13 139

原创 为什么kafka客户端需要配置 /etc/hosts文件

问题背景前段时间,遇到一个kafka集群部署在k8s中,而kafka客户端在另一个k8s集群的pod的容器中,kafka集群中配置的advertised_listeners便是hostname。然而当时我只知道kafka集群的ip地址,当在客户端直接使用ip操作broker的时候便报错无法解析一个hostname。当时不知道什么原因,只听同事说需要在kafka客户端对应的yaml文件中添加H...

2020-01-21 18:28:15 6200 2

原创 flink实战 -- 数据写入clickhouse(ClickHouseSink)

简介本文主要介绍如何通过Flink JDBC Connector将数据写入ClickHouse以及直接使用Flink JDBC Connector操作ClickHouse存在什么样的问题。Flink JDBC Connector的使用通过JDBCUpsertTableSink.Builder创建一个JDBCUpsertTableSink对象,JDBCUpsertTableSink需要的参数...

2019-12-29 19:06:41 13318 2

转载 Flink Window的5个使用小技巧

说明:今天看到小米技术云公众号上的一片文章,觉得很好很实用就转载了一下Window是Flink的核心功能之一,使用好Window对解决一些业务场景是非常有帮助的。今天分享5个Flink Window的使用小技巧,不过在开始之前,我们先复习几个核心概念。Window有几个核心组件: Assigner,负责确定待处理元素所属的Window; Trigger,负责确定Wi...

2019-12-27 16:03:40 562

原创 kafka-jdbc-connector-sink实现kafka中的数据同步到mysql

这是一篇关于通过mysql主从复制的方式进行数据同步的教程: https://zixuephp.net/article-438.html接下来笔者要描述的是mysql的数据通过kafka,然后在实时进入其他mysql数据库的方案有同学可能会问到为什么这么麻烦,而不直接使用主从复制的方案来解决mysql的数据同步呢?原因是通过kafka connector可以做简单的数据过滤。...

2019-11-24 20:52:36 7736

转载 内存分配器(Memory Allocator)

原文链接 :https://yq.aliyun.com/articles/254033对于大多数开发者而言,系统的内存分配就是一个黑盒子,就是几个API的调用。有你就给我,没有我就想别的办法。来UC前,我就是这样认为的。实际深入进去时,才发现这个领域里也是百家争鸣,非常热闹。有操作系统层面的内存分配器(Memory Allocator),有应用程序层面的,有为实时系统设计的,有为服务程序设计...

2019-10-10 18:05:39 1152

转载 MessagePack简介及使用

什么是MessagePack原文链接:https://blog.csdn.net/tianyeshiye/article/details/80273574官方msgpack官网用一句话总结:It’s like JSON.but fast and small.简单来讲,它的数据格式与json类似,但是在存储时对数字、多字节字符、数组等都做了很多优化,减少了无用的字符,二进制格式,...

2019-09-10 18:14:43 1103

转载 Kubernetes的ConfigMap详解

Kubernetes的ConfigMap详解2018年04月04日 15:26:10liukuan73阅读数 12595版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liukuan73/article/details/79492374ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etc...

2019-07-08 18:32:02 840

转载 从零开始搭建Kubernetes集群(七、如何监控K8S集群日志)

原文链接:https://www.jianshu.com/p/b264b6cf9340一、前言上一文《从零开始搭建Kubernetes集群(六、在K8S上部署Redis 集群)》主要介绍了如何在K8S上部署一套基于StatefulSet的Redis集群。本篇将介绍一下如何在K8S上进行日志的监控。二、架构选择(ELK VS EFK)ELK我们首先介绍一下传统的日志监控方案。其中...

2019-07-01 17:38:07 944 1

转载 基于Filebeat自动收集Kubernetes日志的分析系统

基于Filebeat自动收集Kubernetes日志的分析系统摘要:Docker容器产生的日志分散在不同的相互隔离的容器中, 并且容器具有即用即销的特点, 传统的解决方式是将日志文件挂载到宿主机上, 但是容器经常会漂移, 给日志的统一查看带来挑战, 并且传统的Docker容器集群日志分析系统存在扩展性弱、效率低下等问题. 本文采用Kubernetes实现容器管理、服务发现及调度, 使用F...

2019-07-01 17:13:40 1404

原创 请求路径问题

访问路径与资源名称通常的URL资源请求路径由两部分构成:访问路径与资源名称。资源名称指的是要访问资源的直接名称,如:show.jsp,或与要访问资源存在映射关系的间接路径,如show.do而访问路径,则是通过该路径则可以定位到指定的资源,即在URL资源访问路径中除了资源名称以外的其他部分。 http://127.0.0.1:8080/demo/hello.do其中,蓝色部分是资...

2018-08-05 14:49:12 1027

原创 SpringMVC 概述

SpringMVC 简介SpringMVC是Spring框架的一部分,是在Spring3.0以后发布的。 SpringMVC的简单应用用户提交一个请求,服务端处理器在接收到这个请求之后,给出一条欢迎信息。​​​​​​​SpringMVC框架的执行流程 ​​​​​​​配置web.xmlurl-pattern只能配*.do , 不能配  /* , 因为 /* 会匹配所有...

2018-08-05 14:47:06 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除