启示录 Blog

生活不只是眼前的苟且,还有诗和远方

一张图了解Google技术栈

一张图了解Google技术栈. 图中涵盖Google的所使用的技术,以及对应的开源产品或SAAS产品。 xmind源文件 参考资料 xg2xg

sed和awk工具,以及正则表达式总结

sed和awk命令正则表达式的使用总结 正则表达式 以下符号可以在grep、egrep、sed、awk中使用: 符号 描述 . 任意1个字符 .* 任意字符 [a-z] 任意一个小写字符 ...

优化MySQL数据插入速度

有时会遇到需要大量写入数据的场景(恢复表、批量插入),当数据插入时会觉得每秒处理的数据记录(row)并不是特别如意。 先看看插入一条记录需要经过那些阶段: 建立连接:TCP的3次握手,建立连接。 发送数据到数据库服务器 解析SQL 打开表 插入记录:批量插入也会被转换成一条条插入 写入索引:每条记录都有索引。写入记录的数量为当前表中存在的索引数目:1 x N 条...

后端之路

后端之路导图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 6...

TiDB 源码阅读笔记:开始

源码编译 1 2 3 4 5 6 7 8 9 export GO111MODULE=on export GOPROXY=https://goproxy.io make #启动服务 ./bin/tidb-server #连接 mysql -uroot -P4000 -uroot -h 127.0.0.1 Connect连接 server/server.go:Run():监听端口,接...

在JS中如何检测对象的改变?

有时候在业务当中会遇到当某个对象改变的时候做一些逻辑处理。在Vue里面数据的双向绑定则是也提到监控对象的变化。主要是利用Object.defineProperty特性。下面是一段对Object.defineProperty扩展实现对象的监控。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28...

在Kubernetes中使用Taints和Toleration划分专用节点

背景 在生产环境中,可能会遇到某些节点只为提供给专门的Pod运行。这里可以使用k8s提供的容忍和污点组合来解决这样的困境。 概念 节点亲和性可以让pod调度到指定的一类节点,污点(taint)则相反,它让节点能排斥一类Pod。在k8s集群里面所有的非系统Pod对于带有污点的节点是不会调度过去的。 结合背景,Pods的服务其实想调度到指定的节点,然后这个节点不能运行其他的Pods。 ...

PostgreSQL开发者模式错误反馈与日志设置

when何时记录 1 2 #client_min_messages = notice log_min_messages = debug5 #debug级别是提供给开发人员使用的,这个可以看到程序调用的信息以及SQL转化为数据结构的信息,每分钟的级别 where记录到哪里 1 2 3 4 #log_destination = 'stderr' logging_collector = o...

迁移私有化git到gitlab

摘要 主要从原因、调研、部署、迁移以及总结几个方面 原因 我们使用git用四年,团队中的所有项目都是在git下面开发。代码库的代码量在10GB+左右。随着团队的发展。工程化以及自动化的需求与呼声越来越高。我们希望通过git来实现gitops、devops、CI/CD。旧的git服务是使用gitosis搭建的.如果是自己开发改造的时间太长。 调研 选择了两个git工具:gogs和gi...

Dockerfile最佳实践Tips

Dockerfile最佳实践 1.使用缓存 Dockerfile的镜像是一层一层的叠加,每一个指令是基于之前层的镜像。如果存在相同父级映像和指令(除了ADD)中,docker不会再次执行相同的指令。而使用缓存。下面是制作镜像时都会添加的部分。注意:如果是多个参数记得使用\换行 1 2 3 4 5 6 FROM ubuntu MAINTAINER Michael Crosby <m...