自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 记一次Clickhouse服务不可用

问题描述:集群没有做高可用,每个分片只有一个副本。查询时无法返回结果且并没有超时错误。排查:首先看下服务器负载。磁盘使用不到50%,内存使用不到20%,cpu空闲率超过80%,各项指标都正常。第二步看下Clickhouse server日志。err log中先后出现两种错误信息:1.Connection Reset By Peer;2.Socket Write Buffer写入失败。尝试在服务器启用Clickhouse client进行查询,发现:上图可以看到查询一直停留在.

2021-03-09 19:54:12 1984

原创 Es错误排查+回顾一下jvm堆内存分区

这段时间开发环境Es新接了一个平台做测试,结果导致频繁gc,隔三岔五整个服务就会挂掉。从最新日志里可以看到eden space使用率98%,这就是服务宕机的原因。先回顾一下eden space是什么,为什么eden space使用率98%的情况下from space, to space使用率这么低。从上图可以看到,jvm中内存分区可以分为heap区和非heap区域。heap区域包括:old spaceedenfrom spaceto space非heap区域包括:perman

2021-01-04 21:29:45 1168 1

原创 【ElasticSearch】插件及自定义插件加载

目录插件及自定义插件加载初始化PluginServicefindBundlesloadBundle总结插件及自定义插件加载初始化PluginService初始化节点的时候会初始化PluginService:this.pluginsService = new PluginsService(tmpSettings, environment.configFile(), environment.modulesFile(), environment.pluginsFile(), classpathPlugin

2021-01-04 11:00:04 643

原创 【ElasticSearch】service启动流程

目录Es启动流程mainexecuteinitEs启动流程main启动方法是org.elasticsearch.bootstrap.Elasticsearch.main,代码如下:public static void main(final String[] args) throws Exception { // we want the JVM to think there is a security manager installed so that if internal poli

2021-01-04 10:51:35 472

原创 【Clickhouse】源码架构

源码版本:V20.1这篇文章主要是从整体上看一下整个项目包含哪些主要模块,明确每个模块的作用,为后续针对性的深挖打个基础。Access:权限控制AggregateFunctions & Functions & TableFunctions:聚合函数、普通函数、表函数的定义Client & Server: 客户端和服务端Columns:内存中保存数据列Common:Compression:数据压缩Core:核心模块,包括Block、Field、Co.

2020-11-03 13:51:28 938 1

原创 个人博客搭建(一):配置环境

工具:Intellij IDEA 2020,java8,Maven,SpringBoot,Mysql,MyBatis1. 下载安装mavenmaven下载下载zip包并解压,然后将/bin添加到环境变量中。不用重启,cmd输入mvn -v出现maven版本就安装成功了。> mvn -vApache Maven 3.6.32. 启动SpringBoot项目新建项目,选择Spring Initializr下一步下一步,选择需要用到的dependenci.

2020-10-10 11:19:54 184

原创 【Clickhouse】clickhouse nested tuple调研

1. nested:写入数据时可以写入和nested结构相同的json格式数据,如:CREATE TABLE json_each_row_nested (n Nested (s String, i Int32) ) ENGINE = Memory;INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n.s": ["abc", "def"], "n.i": [1, 23]};nested中的字段数据类型不能动态变化。nested结

2020-05-20 16:54:24 5353

原创 【Clickhouse】集群部署

工具:Ubuntu20.4LTS虚拟机*4,Clickhouse20.31. 搭建集群。首先看一下几台虚拟机之间能否ping通:$ ping ubuntu2ping: ubuntu2: Temporary failure in name resolution$ ping 192.168.154.129PING 192.168.154.129 (192.168.154.129) 56(84) bytes of data.64 bytes from 192.168.154.129: .

2020-05-13 18:18:33 263

原创 【Clickhouse】单机数据导入

工具:VMWare15 Pro,Ubuntu20.4LTS,Clickhouse20.3.81. 导入数据。这里用的是官方提供的数据集Yandex.Metrica

2020-05-13 14:34:19 2275

原创 【Clickhouse】单机部署

工具:VMWare15 Pro,Ubuntu20.4LTS,ClickHouse1.sudo apt-get install apt-transport-https ca-certificates dirmngr报错:E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5472 (aptd)N: Be aware that removing the lock file is not a sol.

2020-05-11 16:56:54 3151

原创 代码review问题总结

1. sql层不要太复杂,一些计算比如同比环比最好放到业务层。如果之后数据库要分表,sql太复杂会很难处理。2. 一个实体类的属性要干净,一些不想关的属性可以另作为一个字段放到map中传给前端。3. 请求体不要直接用map,可读性太差。如果参数数量少就直接放到param当中,数量多就弄成实体类放到请求体中。4. 给属性赋值时,减少对单个属性set。能同时赋值的就都放到实体类中用构造函数...

2020-04-30 18:34:39 450 1

原创 dubbo服务接口

最近在和两个项目对接dubbo接口,发现两个项目在接口实现上有差异。项目一接口是这样的:public List<String> function(String userId, String token, String resId);方法直接返回所需要类型的实例,方法入参里只有需要的参数。这种好处是调用方不需要导入任何冗余的包或方法,但是会导致两个项目耦合度比较高。当接...

2020-04-30 11:50:21 725

原创 jar包冲突

今天部署的时候升级了一个jar包,重新部署之后就报错内存溢出。SEVERE: The web application [] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a ...

2020-04-29 19:35:25 323

原创 【Spring】Bean加载

XmlBeanDefinitions加载BeanDefinition步骤1.@Overridepublic int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException { return loadBeanDefinitions(new EncodedResource(resource));...

2020-04-28 21:52:59 102

原创 【Spring】核心类相关

一、DefaultListableBeanFactory类图1. Alias:bean的定义中,可以给bean设置别名。// 配置文件中定义了一个JavaBean<bean id="some" class="src.com.Some"/>// 我要给这个JavaBean增加别名,以方便不同对象来调用。我们就可以这样写:<bean id="some" ...

2020-04-26 20:56:11 136

原创 HBase和Cassandra

HBaseBigtable(?)基于Hadoop HDFS一致性、容错性CassandraBigtable+Dynamo(?)一致性哈希,数据通过哈希决定存放在哪一台服务器3. BigTable+Dynamo4. 高可用、容错性...

2020-03-31 23:49:49 181

原创 【分布式系统】概述

一.概述1. 分布式存储概念2. 分布式存储分类2.1 分布式文件系统2.2 分布式键值系统2.3 分布式表格系统2.4 分布式数据库相关书籍:《大规模分布式存储系统:原理解析与架构实战》1. 分布式存储概念分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务。特性:可拓展、低成本、高性能、易用。挑战:数据、状态信息持久化;数据一致性。涉及到的技术:...

2020-03-31 00:38:14 191

原创 【剑指OFFER】二叉树中和为某一值的路径

题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)算法设计用深度搜索,逐个遍历二叉树的结点。要注意的是题目中说,路径是从树的根结点开始往下一直到叶节点,因此如果还未到叶节点,值的和就与expectNumber相等的话是不能算做一个正确...

2019-02-17 16:14:03 76

原创 【剑指OFFER】二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。示例一:输入:5, 7, 6, 9, 11, 10, 8输出:true示例二:输入:7, 4, 6, 5输出:false算法设计二叉搜索树的特点是左子树的值全都小于根节点,右子树的值全都大于根节点。这题只需要根据这一特点判断即可。C+...

2019-02-17 15:30:47 92

原创 【剑指OFFER】从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。算法设计有点类似于BFS的思想,借助一个队列来实现。从根节点开始,依次将将结点、左结点、右结点压入队列中,再从队头开始输出结点值。C++代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int ...

2019-02-17 12:32:34 87

原创 【剑指OFFER】包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。算法设计题目中要求min函数时间复杂度为O(1),也就说明要求在push的过程中就存下最小值。要注意的是,如果最小值被弹出后,min要变为次小值。因此要借助一个辅助栈来存储每次压入一个新数字的时候,栈中的最小值。步骤:push时,min_stack中压入min{value, m...

2019-02-16 21:41:21 88

原创 【剑指OFFER】反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。算法思路用两个指针current和previous。current遍历链表,previous指向current在反转前链表中的前一个结点。将current和previous的next指针反转,当current-&gt;next = nullptr时,该节点为反转链表的头节点。C++代码/*struct ListNode { int ...

2019-02-15 16:45:33 146 1

原创 【Leetcode】46. 全排列

题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]算法设计深搜。通过递归实现找到以每个数字开头的排列,用一个tag数组作为使用位来标记元素是否已经放入当前排列中。C++代码class Solution {public: ...

2019-02-13 21:29:43 125

原创 【Leetcode】43. 字符串相乘

题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只...

2019-02-12 18:12:29 163

原创 【Leetcode】40. 组合总和 II

题目描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:...

2019-02-12 16:52:12 98

原创 【Leetcode】39. 组合总和

题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...

2019-02-12 16:36:12 105

原创 【Leetcode】36. 有效的数独

题目描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,...

2019-02-11 16:54:21 149

原创 【Leetcode】34. 在排序数组中查找元素的第一个和最后一个位置[需优化]

题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10],...

2019-02-11 16:10:03 111

原创 【Leetcode】33. 搜索旋转排序数组

题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2],...

2019-02-11 15:01:35 103

原创 【Leetcode】31. 下一个排列

题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1算法设计以i=len-1为起点从数组末尾开始向...

2019-02-08 15:18:34 66

原创 【Leetcode】24. 两两交换链表中的节点

题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1-&gt;2-&gt;3-&gt;4, 你应该返回 2-&gt;1-&gt;4-&gt;3.算法设计用三个指针,两个指向需要交换的结点,一个指向要交换的结点的前驱结点。C++代码/** * Definition for singly-lin...

2019-02-08 12:02:28 63

原创 【Leetcode】19. 删除链表的倒数第N个节点

题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&amp;gt;2-&amp;gt;3-&amp;gt;5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?算法设计题目中n保证是有效的,就不需要考虑n大于链表长度的情况,这样就可

2019-02-07 23:27:11 71

原创 【Leetcode】16. 最接近的三数之和

题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).算法设计用三个指针i,j,k以i=...

2019-02-02 01:20:26 70

原创 【Leetcode】15. 三数之和[需优化]

题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]算法设计这题基本思路很暴力...

2019-02-01 17:27:38 147

原创 【Leetcode】12. 整数转罗马数字

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数...

2019-02-01 15:30:15 95

原创 【Leetcode】11. 盛最多水的容器

题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49算法设计从最左和最右的...

2019-02-01 14:57:23 83

原创 【Leetcode】6.Z字形变换

题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函...

2019-01-31 15:56:26 75

原创 【Leetcode】5.最长回文子串

题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”算法设计从长度最长的子串开始逐个遍历该字符串子串,返回找到的第一个回文串。判断回文串:两个指针i和j,从字符串的中间开始,i向位置0移动,j向末尾...

2019-01-31 15:08:58 117

原创 【Leetcode】3. 无重复字符的最长子串[未解出]

题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “w...

2019-01-30 22:10:38 72

原创 【Leetcode】2.两数相加

题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)输出:7 -&gt; 0 -...

2019-01-30 00:07:51 69

空空如也

空空如也

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

TA关注的人

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