自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Aiky哇

内核选手是硬核选手

  • 博客(210)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 记在2023/8/24

我好像已经失去了之前的目标,忘记了自己应该时刻保持学习。明天开始重新学习pg的相关知识。今天开始恢复博客写作,重新记录自己的所学。

2023-08-24 21:13:02 282 2

转载 docker之WORKDIR指令

第一层 RUN cd /app 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。而到第二层的时候,启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR 会帮你建立目录。可以看出,more的参数是 test.txt,但没有指定路径,却能成功,说明当前路径就是上面WORKDIR指令设置的。

2023-06-30 10:24:22 792

转载 解决Golang获取当前项目绝对路径问题

由于Golang是编译型语言(非脚本型语言),如果你想在Golang程序中获取当前执行目录将是一件非常蛋疼的事情。通过对比执行结果,我们发现两种执行方式,我们获取到了不同的路径。库)的时候,突然反应过来一件事情。比如下面是一条简单的日志,而服务是通过。,而今天我在看日志库的时候发现了一种新的解决方案。实现的,其实所有Golang日志库都会有。启动的,但日志库却把我正确的程序路径。,但他们的执行目录却完全不一样了。用Go编写的程序有两种执行方式,嗯~~ 结果完全正确!获取到的路径是错误的。

2023-05-06 11:52:01 1189 1

原创 一键生成!如何为整个go项目自动添加单测

为go项目中每个go文件生成对应的test文件,为每个接口生成对应的单测接口。类似于这样,为go项目中每个包都生成一个test文件,单测模板如下:比如函数接口为func releaseEndpoint(instanceID string, endpointID string) error。

2023-04-21 16:09:15 1312

原创 Linux crontab命令:循环执行定时任务

crontab 命令是通过 /etc/cron.allow 和 /etc/cron.deny 文件来限制某些用户是否可以使用 crontab 命令的。当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高。

2023-04-20 11:12:23 431

转载 pg_rewind详解

pg_rewind是pg提供的工具,当2个pg实例时间线(timeline)出现分叉时,pg_rewind可以做实例间的同步。(比如主库运行的情况下,备库failover后运行了一段时间,此时主备的时间线就出现了分叉)pg_rewind会对比两者的大小,然后把大小不一样的文件从源拷贝到目标,包括配置文件。但是它不会对比没有发生改变的文件,所以pg_rewind在比较大的库,更改少量数据时,运行效率较高。

2023-04-14 14:37:39 394

原创 我的创作纪念日

提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。我的生活也是一步一个脚印在前进。提示:职业规划、创作规划等​​。只是为了记自己不会的东西。继续在数据库领域加油喽。

2023-04-13 18:00:20 50

转载 【PostgreSQL】数据库中DataBase(DB)、schema、role三者之间的关系

角色(用户)role则是数据库服务器(集群)全局范围内的权限控制系统,用于各种集群范围内所有的对象权限管理。PostgreSQL数据库表空间用于定义数据库对象在物理存储设备上的位置,不特定于某个单独的数据库。数据库DB是数据库对象的物理集合,而schema则是数据库内部用于组织管理数据库对象的逻辑集合,schema名字空间之下则是各种应用程序会接触到的对象,比如表,索引,数据类型,函数,操作符等。因此角色不特定于某个单独的数据库,但角色如果需要登录数据库管理系统则必须连接到一个数据库上。

2023-04-07 15:26:52 958

转载 Go 调试工具:gdb vs dlv

综合比较两个Golang程序调试器gdb和dlv,我认为dlv的功能更为完善,更能满足实际调试时的功能需求。两者的优缺点比较大致如下调试器优势不足dlv对goroutine环境调试支持比较完善暂时没找到gdb符合现有的调试习惯,类似C/C++调试指令都有对goroutine场景支持不足,不能很好的应对goroutine的调试(1)dlv对goroutine的支持更好,我使用gdb的没有找到goroutine的调试方法,可能姿势不对(2)gdb对于局部引用变量无法调试,dlv不会。

2023-03-07 20:29:08 392

原创 Go mockito 使用说明 (github/mockey)

mockey是一个简单易用的golang mock库,可以快速方便的mock函数和变量。目前广泛应用于字节跳动服务的单元测试编写。底层是monkey patch,通过在运行时重写函数指令实现。mock后还是进入了原来的函数?私有类型的导出方法(不同包下)goroutine 条件过滤。获取 mock 函数执行次数。报错“功能太短无法打补丁”?增量改变 mock 行为。如何禁用内联和编译优化?mock 后执行原函数。

2023-03-01 17:41:34 904

原创 postman接口工具使用

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等)。官网下载地址:https://www.getpostman.com 选择好对应的版本下载,下载完后直接安装 在页面中使用F12

2023-02-27 20:11:25 186 1

原创 了解 PostgreSQL 的扩展查询协议

本篇博客用于解释扩展协议的工作原理以及它与简单查询的区别。

2023-02-21 15:29:44 907

原创 python k8s库,read_namespaced_config_map:maximum recursion depth exceeded

在python中,,同时引用了接口:发现最后一直卡死在。

2023-02-20 12:06:11 635

转载 static修饰的函数作用与意义

在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。这样的static函数与普通函数的区别是:用static修饰的函数,而普通的函数,默认是extern的,也就是说它可以被其它代码文件调用。 其他文件中可以定义相同名字的函数,不会发生冲突。 静态函数不能被其他文件所用。

2023-02-05 16:41:38 863

原创 一次奇怪的 go unknown revision。mod/cache/vcs

然后我去报错的文件夹看了一下,想看看/go/pkg/mod/cache/vcs 这个东西到底是干嘛的。然后开始倒腾,又是升级go版本,又是升级git的,又是配置goproxy。主干分支我编译没有问题,但是切换到新分支后,编译会报错。然后感觉是缓存之类的,于是想着是不是缓存影响的。今天clone了一个go语言项目到本地。于是gitlab打开该仓库链接。然后重新编译就能正常编译了。

2023-01-29 21:03:16 677

转载 数据库主从延迟导致查询不准确的解决思路

当数据达到一定量的时候,数据库会成为整个系统的瓶颈,一般采取的优化策略为读写分离,数据库通过分主库从库从而实现读写分离(写请求操作主库,读请求操作从库);1、实现固然重要,但更为重要的是思路;2、很多底层的原理与思想是通用的。

2022-12-29 21:59:53 418

转载 remaining connection slots are reserved for non-replication superuser connections问题

【代码】remaining connection slots are reserved for non-replication superuser connections问题。

2022-12-22 19:44:50 6174 1

转载 ConfigMap使用

其中configMap中分别定义了两个key,一个是key-serverxml,另一个是key-loggingproperties。这两个key的value都是一个文件。所以我们需要通过volumeMount,对这两个进行相应的挂载。

2022-12-22 19:41:44 1198

原创 python 字符串切割

默认以空白切割# 以 = 为分隔符# 以 = 为分隔符,只切割一次# 默认以空白切割,取序列下标为0的项https://# 以 = 为分隔符,取序列下标为0的项sl。

2022-11-25 20:48:40 3627

转载 【Python Web实战】Python Flask的静态路由和动态路由

路由分为静态和动态两种,静态路由就是在上一节使用的路由,直接使用@app.route定义,route的参数值就是路由,也就是在浏览器地址栏中输入Url的路径。到现在为止,相信读者已经对静态路由和动态路由的用法已经相当清楚了,但可能有的读者会有这样的疑问:如果一个Url同时满足静态路由和动态路由,那么服务端会如何处理呢?一个动态路由可以有任意多个路由参数,而且可以形成更复杂的动态路由,例如,可以组成多级的动态路由,可以将一个复杂的路径拆成多个路由参数。访问上面的Url后,会在浏览器中输出如图3所示的信息。

2022-11-23 21:41:19 934

原创 pgpool读写分离,配置设置及调研

pgpool基于官方版本4.2.

2022-10-24 21:12:46 2168

转载 k8s中label和label selector的基本概念及使用方法

标签这个概念和现实生活中的标签也没有什么两样,如,苹果是水果,冰箱是家电,都是一种标签,类似的,在k8s中,一个label就是一个key/value对(envronment:online)。这个标签可以由使用者自己来进行定义,然后附加到k8s中的资源对象上,比如,pod上,node上等等。

2022-10-20 17:01:29 2743

转载 【k8s】PV的使用

pv理解为一个网络存储卷,pvc是一个满足pod所需性能的一个申明,StorageClass是一个找不到合适pv之后可以自动创建的pv的一个机制。

2022-10-09 21:33:38 1638

转载 【k8s】查询所有命名空间中的deployment、Pod

加上-A参数表示查看所有(namesqpace)上的Pod。

2022-10-09 20:08:23 6056

原创 【k8s】学习报告3,核心技术Pod

Pod是K8S系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在K8S上运行容器化应用的资源对象,其它的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,K8S不会直接处理容器,而是Pod,Pod是由一个或多个container组成。

2022-10-09 16:46:09 139

原创 【k8s】学习报告2,Kubernetes集群管理工具kubectl

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。(可以理解为类比数据库的客户端工具、)命令格式如下:参数介绍如下:type:指定资源类型,资源类型是大小写敏感的,开发者能够以单数 、复数 和 缩略的形式。 name:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有的资源 flags:指定可选的参数,例如,可用 -s 或者 -server参数指定Kubernetes API

2022-10-09 15:40:28 200

原创 【k8s】学习报告1,k8s简介

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的。K8s是谷歌在2014年发布的容器化集群管理系统。

2022-10-09 14:27:23 311

原创 【k8s】前置知识学习,docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;容器与管理程序虚拟化(hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多台独立的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。

2022-10-09 11:30:39 348

转载 【k8s】状态为 Evicted 的 Pod

在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted。差不多得有几百个。

2022-10-09 10:28:10 335

转载 【K8S】Pod的状态描述

该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。API Server无法正常获取到Pod对象的状态信息,通常是由于其无法与所在工作节点的kubelet通信所致。Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。Pod中的所有的容器已经正常的执行后退出,并且不会自动重启,一般会是在部署job的时候会出现。Pod已经被创建,但还没有完成调度,或者说有一个或多个镜像正处于从远程仓库下载的过程。处在这个阶段的Pod可能正在写数据到etcd中、调度、pull镜像或启动容器。

2022-10-09 10:20:30 833

原创 vscdoe美化linux终端 oh-my-zsh

上回书说到连接liunx,默认 CentOS / Ubuntu / Mac 系统用的是 Bash有点丑,而且使用体验也不是很好,我们使用on-my-zsh改造一下。

2022-09-30 15:24:36 857

转载 python的urllib3库(http连接池PoolManager)

【代码】python的urllib3库(http连接池PoolManager)

2022-09-27 16:15:35 1150

转载 python之class

私有成员,只有类对象自己能访问,子类对象不能直接访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。

2022-09-26 21:50:53 831

转载 app = Flask(__name__)相关说明

app收到请求,通过路由找到对应的视图函数,然后将请求处理,得到一个响应response。如上述代码所示,app是flask的实例,功能就是接受来自web服务器的请求,浏览器将请求给web服务器,web服务器将请求给app ,然后app将响应返回给web服务器,浏览器展示给用户观看,流程完毕。全世界的程序员们联合起来吧!web服务器返回给浏览器,

2022-09-26 21:35:12 384

转载 Signal:python用信号处理程序的机制及用法举例

提供了在 Python 中使用信号处理程序的机制。

2022-09-26 20:58:23 1171

原创 python中的线程threading.Thread()使用详解

一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程结束时,子线程依然在执行。

2022-09-26 20:31:09 11218

原创 StoneDB 2.0 调研:架构解析内存引擎详细设计

数据在加载到基于列的内存引擎之前会被压缩和编码,但是并非所有类型的数据都适合编码和压缩。

2022-09-24 17:23:54 730

转载 新安装的linux(linux mint 或则ubuntu)系统中安装postgresql-xc安装的包

你看我运行成功了吧。

2022-09-22 16:25:58 187

原创 clickhouse不要混淆part和partition

看完整本《ClickHouse原理解析与应用实践》,我都没有意识到这个问题,ck中的partition和part,他不是缩写的关系,他是两个东西。ckman的介绍中,会除去掉最新的partition,然后移动其他的partition。ckman的数据重分布是以partition为颗粒度,移动partition来达到数据重分布的效果的。总而言之,partition是分区,一个partition是可以包含多个part的。这个错误导致我在看ckman的数据重分布算法介绍的时候,理解陷入了误区。

2022-09-21 16:24:45 795 1

原创 《c++ Primer Plus 第6版》读书笔记(6)

如果派生类没有重新定义函数,将使用该函数的基类版本。如果派生类位于派生连中,则将会使用最新的虚函数版本。

2022-09-20 23:25:10 314

clickhouse21.8带所有submodules源码包

直接从github上下载过慢 git网址: https://github.com/ClickHouse/ClickHouse/releases/download/v21.8.14.5-lts/ClickHouse_sources_with_submodules.tar.gz

2022-06-07

wps宏vba插件.zip

好家伙,网上各种什么软件之家,balabala的都是假的,找的我这个费劲,我弄个真的好吧,别再糊弄人了

2021-05-17

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

TA关注的人

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