- 博客(97)
- 资源 (11)
- 收藏
- 关注
原创 go mod replace 解决 fork 项目的引入问题(module declares its path as Axx, but was required as Bxx)
背景使用第三方依赖包,有自己的需求需要进行改造, fork 之后进行了改造,然后推送到自己的项目中,再去进行构建的时候,报错如下:module declares its path as Axx but was required as Bxx意思是说,我的这个项目引入的依赖路径不对,因为依赖的项目本身是使用go mod进行依赖管理的,而我在 fork 之后项目在 gopath 中的路径已经发生了变更,两者不一致导致这个错误的出现。个人开发,无论是bug、功能、公司私有仓库的一些原因,可能还是会遇上
2021-01-04 22:09:31
15087
原创 Code:170.DB::Exception: Received from localhost:9000. DB::Exception: Requested cluster xxx not found
Received exception from server (version 20.10.3):Code: 170. DB::Exception: Received from localhost:9000. DB::Exception: Requested cluster 'kcdnbandwidthonlinech' not found.0 rows in set. Elapsed: 0.017 sec.Clickhouse 完整报错如上,猜测你也是自己在搭建 clickhouse,然后去创建
2021-01-04 19:38:28
7330
1
原创 grafana 安装 clickhouse 数据源插件
1. 使用grafana-cli 安装官方的帮助手册:https://grafana.com/grafana/plugins/vertamedia-clickhouse-datasource/installation官方推荐是使用 grafana-cli 工具来安装的,不过我的线上机器因为网络还是版本的原因,安装没有反应,那就使用第二种方式来安装2. 使用zip安装包安装在这里下载文件上传至插件指定的目录,默认目录是 /var/lib/grafana/plugins解压缩,解压缩之后是作为
2020-12-27 19:37:39
2862
原创 Golang的Mutex是值传递还是引用传递?
为什么会有这个问题?突然看到函数传参的问题,就想知道直接传参,Mutex是传值还是传引用结论值传递Mutex定义type Mutex struct { state int32 sema uint32}看下定义就知道了,结构体,而且里面的字段类型都是普通值类型,那函数传参如果不特定使用指针,那就是值传递抛出一个问题下面代码会报panicfunc TestMutex1(t *testing.T) { mux := sync.Mutex{} mux.Lock() mux.Unlo
2020-05-08 20:25:28
1797
1
原创 harbor从1.2.2升级到1.5.0
目录前言重要提示升级1. 停止老harbor集群2. 备份老版本安装路径3. 下载新版本harbor的安装包4. 下载迁移工具镜像5. 备份 harbor.cfg 以及 数据库相关6. 升级数据库架构(schema)、harbor.cfg 并且 迁移数据7. 启动harbor1.5.08. 如果还有一些不符合预期的再自行调节配置一些问题及解决办法[ERROR] InnoDB: ./ibdata1 ...
2020-03-18 00:50:15
1307
原创 Golang遍历map的同时并发修改map的值
目录背景解决需求问题并发问题举例1 - panic并发问题举例2 - 死锁通过复制map解决问题后记背景如题,有个逻辑设计,在遍历map的同时需要并发的修改map的值解决先说下解决,那就是把map重新复制一份,不是同一个map自然也就不存在并发安全和死锁的问题了,但是因为不是同一个map了,自然是需要注意数据还是否有效的问题了。这个可以通过加锁之后的再次判断来解决。需求问题并发的读写...
2020-03-15 14:07:55
7331
原创 进程如何主动限制磁盘IO/Reader中数据的读写速度 —— golang 之 io.LimitReader
背景要在agent中实现一个类似于ftp数据源端限速的功能,保证agent在运行过程中长期读取磁盘的时候,不会对磁盘造成压力,影响其它业务。前言说起限流,运维的小伙伴或多或少都知道点,来了20个流量,只能处理15个,则设置限流阈值为15,剩余的5个直接返回错误,这就是最简单理解的限流。然而限速呢?相比限流直接了当的给一个错误的返回值,限速要做的不仅不能返回错误,而且要在一定的时间段内进行响...
2019-11-10 15:57:55
5444
原创 es 聚合提示 Fielddata is disabled on text fields by default.
解决在查询的字段名加 .keyword如原来的字段名为 xxxx.xxxxx 则在查询时指定字段名为 xxxx.xxxx.keyword背景ES新手一枚,查询数据时报错如题网上查了一通之后,发现大多是如下文:es进行聚合操作时提示Fielddata is disabled on text fields by default可惜我是新手,上文的方案应该是完美且正确的解决方案,...
2019-11-02 13:45:05
869
原创 Chrome插件之vimium
程序员总是喜欢各种工具,对 vim 一般情况也不陌生,这里推荐一款和vim快捷键类似的chrome 插件 => vimium功能和 vim 快捷键一样的操作网页内容使用既然名字叫 vimium ,那实际上和 vim 的快捷键是类似的,也有一些扩展和变更,自己能用到的快捷键大概有下面所列。看到有一篇简书针对 vimium 快捷键的修改,可能个人习惯不同,我感觉标准的 vim 按键...
2019-08-31 15:17:52
707
原创 find 命令如何忽略目录以及 -a -o 参数的短路逻辑
近期项目中要使用到find命令,下面两个点彻底搞蒙了我:-prune 参数怎么用-a -o 两个参数的短路逻辑如何理解
2019-05-04 11:23:14
1764
原创 golang exec 执行 shell 如何同步输出/得到执行结果
背景项目中需要执行shell命令,虽然exec包提供了CombinedOutput()方法,在shell运行结束会返回shell执行的输出,但是用户在发起一次任务时,可能在不停的刷新log,想达到同步查看log的目的,但是CombinedOutput()方法只是在完全执行结束才返回整个shell的输出,所以肯定达不到效果,所以,我需要寻找其它方法达到程序一边执行log一边输出的目的。使用重定向...
2019-05-01 23:10:10
15392
1
原创 Mac使用brew安装Thrift 0.10.0
本文参考:mac安装thrift.0.10.0brew安装指定版本的软件环境我的brew版本:➜ ~ brew -vHomebrew 1.9.2Homebrew/homebrew-core (git revision 0ff7; last commit 2019-04-29)安装brew首先需要安装 brew ,方式很多,可直接看官网编辑依赖文件然后编辑一个文件 th...
2019-04-30 21:57:27
2497
4
原创 Linux 下如何对文件名包含特殊字符的文件进行操作
参考Linux 下如何处理包含空格和特殊字符的文件名上面的文章讲的很详细,我总结出来就是三点(可能不完全,个人认为解决了80%的问题)针对 - 开头的文件需要使用 -- 来告知bash,不要将这里的 - 解释为参数针对其它特殊字符,使用 ' 单引号把文件名括起来针对文件名还包含 ' 或者 " 的情况,就需要交替使用规则针对上述三点分别举例,举例的命令一般都适用 cp、mv、chown...
2019-04-23 09:33:28
14051
原创 golang中多goroutine时kill信号接收的问题
本文探讨的问题:外部的kill信号能被多线程程序中的多个线程同时接收到吗?结论可以,这里用 golang 进行举例,多个goroutine通过 signal.Notify 注册消息的接收,然后在每个 goroutine 中都可以捕捉到kill的信号实验样例package mainimport ( "fmt" "os" "os/signal" "sync" "syscall...
2019-04-21 09:50:02
3622
原创 wget命令关于超时的参数(timeout、dns-timeout、connect-timeout、read-timeout)
查看一下wget的man手册,然后随便搜索一下time,就能看到好多时间相关的参数,如下图:这里主要看下这timeout这个参数。–timeout 指的是一次读取数据的超时时间如何理解这个一次读取数据呢?其实他包含了下面三个参数:dns-timeout : dns 解析的时间connect-timeout :链接的时间read-timeout :读取一次数据的时间举个错误用...
2019-04-11 22:30:19
26668
1
原创 golang os/exec包用法之Kill进程及其子进程
前言&背景平时在做一些开发时难免要调一些shell脚本或者外部程序,golang提供了exec包很方便的帮我们解决了这个问题。但是当外部程序或者shell脚本夯死就使得我们自身的程序很不稳定。与此同时,当我们已经感知到程序脚本运行出现问题时,我们可能需要立刻对程序进行杀死的操作,但是当我们很自然的想到cmd.Process.Kill()时,我们又遇上了另外一个问题,因为这个操作并没有将...
2018-08-05 12:04:20
17271
原创 golang struct tag value的语法错误
背景 Bad syntax for struct tag value less… (⌘F1) Inspection info: Verifies that struct tags conform to Go conventions. According to these conventions, tag strings are a concatenation of optio...
2018-08-04 14:16:27
5085
原创 使用antd开发时遇上的onChange event为空的问题
背景:在使用React进行前端页面的开发,使用antd的Input组件时,本想利用onChange事件的event.target.value获取正在修改的值,但是一直报错为空,下面是控制台的报错信息: This synthetic event is reused for performance reasons. If you’re seeing this, you’re accessi...
2018-05-11 20:46:08
15445
2
原创 完美的【去重留一】SQL
借鉴这里的SQL用法,挺全面的:MySQL 【去重留一】一条sql语句完成 思路总结 背景,优快云网站最近好像在做 http 到 https 的转换,所以之前写的群博中本身博客唯一标示的 url 就出现了变化,导致数据库中存在重复的博客内容解决办法先贴下SQLdelete T_blog from T_blog, (select Title from T_blog wh...
2018-03-24 10:52:15
629
原创 virtual box启动虚拟机失败 Access denied
下面是我在启动虚拟机时的报错:Runtime error opening '/home/zxq/VirtualBox VMs/win-10/win-10.vbox' for reading: -38(Access denied.)./Main/src-server/MachineImpl.cpp[745] (nsresult Machine::i_registeredInit()).我的情形是在我用
2017-12-17 20:24:13
3728
2
转载 Go Get安装一些第三方库-网络问题
原文链接:https://javasgl.github.io/go-get-golang-x-packages/ 侵权联系删除!go在go get 一些 package时候的会由于众所周知的原因而无法下载。比如在安装 bee的时候有可能会遇到无法下载 golang.org/x/sys/unix 的问题。unrecognized import path "golang.org/x/sys/uni
2017-10-15 08:55:53
5319
原创 CentOS6.7上安装Mysql5.7
环境的配置总是令人作呕,所以这次表明版本条件:首先,这是一台新机器其次,CentOS版本如下:[root@pc ~]# cat /etc/redhat-release CentOS release 6.7 (Final)再者,要安装的Mysql版本如下:[root@pc ~]# mysql --versionmysql Ver 14.14 Distrib 5.7.19, for Li
2017-07-22 18:27:05
1980
原创 Golang Beego框架之WebIM例子分析
beego框架算是golang比较成熟的一个框架了,最近看了下这个框架其中的一个在线聊天室的例子,觉得还是有很多可以学习借鉴的地方,所以就总结下。这个例子的源码在这里,该例子配合bee工具可以很简单的进行运行。首先看下这个项目的结构:标准的beego框架,各个文件夹包含了不同的功能。然后我们从main.go(这里是WebIM.go)看起:package mainimport ( "githu
2017-06-29 12:08:47
5260
原创 有关golang package中init方法的多处定义及运行顺序问题
在不了解这个问题之前,在网上搜索一下竟然搜出了两个完全相反的结果,所以打算自己测试下这个问题。首先给出结论:在同一个package中,可以多个文件中定义init方法在同一个go文件中,可以重复定义init方法在同一个package中,不同文件中的init方法的执行按照文件名先后执行各个文件中的init方法在同一个文件中的多个init方法,按照在代码中编写的顺序依次执行不同的init方法下面
2017-06-25 14:24:39
17104
原创 Centos7源码安装mysql
安装了整整一天的mysql,心好累,不过到现在为止,总算是安装完成。这里就大致回顾以下安装的过程,以防后续还有用。本来Centos安装mysql并不算什么难事,但是经过今天的折腾才算是有了新的认识,之前用的ubuntu,直接apt-get就搞定,换到红帽系还有点丝丝的不习惯。yum安装的方式就自行搜索,这里来看一下我自己源码编译安装的过程以及以下要注意的细节问题。1.卸载原有失败安装残留能够使用源码
2017-05-21 01:04:18
2218
原创 使用PHP-curl获取验证码并模拟登录教务系统
首先说一下这篇文章的需求,当我们在一些没有提供验证接口的系统中,需要验证用户身份的时候,就可能需要用户登录当前系统,从而确定该用户是当前系统的合法用户,校园的教务系统就是一个典型的例子,我们通过学生自己登录学校的教务系统从而确定该用户为在校生。但是,现如今各式各样的系统为了安全起见,通常都会设置验证码防止恶意攻击,这里就以本校的为例简单介绍一下如何使用PHP-curl请求登录验证码并模拟登录教
2017-05-16 23:38:33
7631
原创 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
在初次使用SpringMVC编写HelloWorld的时候,运行时报这个错误,在网上搜索一顿基本都是说jar包是否导入或者tomcat的缓存是否清除的问题,然而我的问题定位貌似都不是,最后在stackoverflow上看到如下的答案:I used IntelliJ IDEA, compilation is successful, but when starting Tomcat, it says:E
2017-05-03 15:14:10
830
原创 Spring事务管理及几种简单的实现
事务是逻辑上的一组操作,这组操作要么全部成功,要么全部失败,最为典型的就是银行转账的案例:A要向B转账,现在A,B各自账户中有1000元,A要给B转200元,那么这个转账就必须保证是一个事务,防止中途因为各种原因导致A账户资金减少而B账户资金未添加,或者B账户资金添加而A账户资金未减少,这样不是用户有损失就是银行有损失,为了保证转账前后的一致性就必须保证转账操作是一个事务。事务具有的ACID特性,参
2017-05-01 22:30:15
19235
3
原创 使用JSP+Servlet实现文件上传下载
文件的上传下载是在web应用中常用的功能之一,这篇博客就简单的使用纯Jsp+Sevlet完成文件上传下载的功能。平时在做一些数据提交的时候通常使用表单,在form表单有一个属性enctype,该属性规定在发送到服务器之前应该如何对表单数据进行编码。属性通常取以下值: 值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认) mult
2017-04-25 14:43:00
1116
原创 java.lang.NoClassDefFoundError与aspectjrt、aspectjweaver的联系
首先,关于NoClassDefFoundError这个问题是什么,可以参照这里在上面有关NoClassDefFoundError这个错误,有这么一段话:NoClassDefFoundError发生在JVM在动态运行时,根据你提供的类名,在classpath中找到对应的类进行加载,但当它找不到这个类时,就发生了java.lang.NoClassDefFoundError的错误,而ClassNotFou
2017-04-20 10:47:21
2565
原创 满二叉排序树中查找三个节点的最小子树的根节点
题目描述:于一棵满二叉排序树深度为k,节点数为2^k-1;节点值为1至(2^k - 1),给出k和任意三个节点的值,输出包含该三个节点的最小子树的根节点。样例输入:4 10 15 13样例输出:12首先,我们来理解一下满二叉排序树,如下就是一个4层的满二叉排序树: * 8 * / \ * 4 12 * / \ / \
2017-04-04 14:49:03
5530
原创 跳跃表的原理及Java实现
原理参考:SkipList跳表这里我使用Java实现其原理:首先是SkipListNode的定义:SkipListNode.javapackage skiplist;/** * Created by zhuxinquan on 17-3-11. */public class SkipListNode implements Comparable { private int value;
2017-03-12 12:19:55
4682
原创 小球在矩形框内45°碰撞问题
问题描述:在一个矩形框内长w, 高h,现在在底边某一点举例左端点x位置处有一弹性小球(可视为质点)向右上方45°发射,碰撞忽略能量损耗,继续45°弹出,输出在前n次碰撞到底边时每次碰撞的位置。首先说一种比较繁琐的思路:碰撞本身是一个过程,我们只需要将所有的可能性考虑到位就好,首先,我们定义如下几个变量用来确定当前的状态:pos 表示当前的位置在哪条边上,我们默认从顶上顺时针分别为1, 2, 3,
2017-03-10 12:15:43
3484
原创 判断字符串中是否包含连续相同的字符串(密码规范)
CVTE的一道笔试题:判断密码设置是否满足要求,要求如下:长度大于等于8位且小于等于16位至少包含大写字母、小写字母、特殊字符和数字中的三种密码中不能包含连续相同的字符串,如cc,cvtecvte等都是不符合规范的C语言实现如下:/************************************************************************* > F
2017-02-27 12:16:12
8476
1
原创 计算机网络——数据链路层
在ISO提出的OSI七层模型中,数据链路层处于第二层。在这一层,我们重点关注点对点之间的通信。关于点对点通信,是指网内任意两个用户之间的信息交换。在这里不过多的搬抄书上的概念,计算机网络的学习应当是以生活中的实践作为基础,来加深理论的理解。1.数据链路层首先,如同在概述中提到的一样,我们研究网络应当时刻站在分层的角度去研究,那么两台主机之间的通信,有关数据链路层的通信如下:如果我们站在数据链路层的角
2017-02-13 20:09:18
969
原创 计算机网络——物理层和信道复用(频分、时分、码分)技术
1.物理层如果一定要给物理层下定义,只能说是OSI模型中的最低层,实际上物理层考虑的是怎样才能在各种媒介上传输数据,而并非具体的传输媒体,物理层的主要任务是确定与传输媒体接口有关的一些特性,即:机械特性:尺寸、形状等电气特性:线路上电压范围功能特性:线路上电压高低表示的意义过程特性:各种事件的顺序2.数据通信系统上图是一个比较常用的通信系统的模型,PC产生的数字比特流经调制解调器转换成模拟
2017-02-08 14:41:27
18002
原创 计算机网络——概述
网络:网络的概念是什么?它是由若干节点和连接节点的链路组成,那么什么是节点?节点是包括计算机在内和集线器、交换机、路由器等等一些设备。网络分为三部分,包括电信网络、有线电视网络和计算机网络,随着技术发展,电信网络和有线电视网络已经融入计算机网络的范畴,这里我们主要了解一下计算机网络。这里还有好几个概念,像互联网、因特网等,我们大概看一下之间的关系:网络和网络通过路由器连接起来就构成了互
2017-02-08 14:40:03
1436
原创 Spring中的增强类型
Spring通过增强类型定义横切逻辑,同时由于Spring只支持方法连接点,增强还包括了在方法的哪一点加入横切代码的方位信息,所以增强既包括横切逻辑,还包括部分连接点的信息。增强包括以下几类:前置增强:org.springframework.aop.BeforeAdvice代表前置增强,表示在目标方法整形前实施增强后置增强:org.springframework.aop.AfterReturni
2016-12-21 20:36:18
1807
原创 Spring AOP之动态代理
Spring AOP中包含两种AOP代理方式,分别是JDK动态代理和CGlib动态代理首先看一下JDK动态代理。JDK动态代理主要设计到java.lang.reflect包中的两个类:Proxy和InvocationHandler.其中InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,并通过反射机制调用目标类的代码,动态将横切逻辑和业务逻辑编织在一起。P
2016-12-20 21:15:34
502
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人