cfanzp

个人Linux开发笔记

skynet-给项目日志添加traceid

给项目日志加上traceid traceid是什么? 这里所说的traceid是指在服务端收到客户端请求后到服务端返回给客户端结果的过程中给没一条日志添加一个相同的traceid来跟踪请求到返回的整个过程。 为什么要给服务的日志加上traceid? 最近准备给项目里的日志都加上traceid。这样方便服务端网关在收到请求后到返回给客户端之前追踪整个请求的链路。方便排查线上的bug以及统计查询请求的性能瓶颈。 添加一个traceid,对于一个新项目而言并不是什么难事,但是对于一个已经成熟上线的项目而言,还是有很多要注意的地方。 目前我们这个上线的项目采用的微服务的思想:项目里面把功能相对独立的部分单独成进程。方便服务的快速迭代,快速部署和部分更新。实际上这样的拆分作用相当明显,需要功能都不需要停服就可以一做到热更新,大大降低了维护成本,提高了用户的体验。 如何设计traceid? 这里把traceid分成4个部分: 用户相关的uid 消息相关的msgid 递增或唯一的tid 时间相关的时间戳timestamp 用户的uid不用说,方便识别这个业务和那个用户相关。 消息msgid就方便定位业务。 tid为了保证traceid的唯一性。 时间戳方便统计请求到返回消耗的时间,同时在每深入一步后可以计算出消耗的时间。 traceid是否可以做到对业务透传? 目前对于线上业务结构,还做不到透传。只能通过在节点间、函数调用间传递参数traceid的方式来使用traceid,这是最简单也是最繁琐的方案了。不过还挺实用,能够解决问题。目前先让各节点支持traceid的链路追踪,后续再进行优化。 总结 traceid的添加还在进行中,目前已完成部分节点的链路日志打印。后续会添加链路时间消耗的统计。这里先行记录一下。后续会使用traceid来统计一下各个api的调用耗时。

linux-xargs用法简介

xargs命令 为啥必须要学会xargs命令? 主要原因是xargs的作用太大了,应用十分广泛,以下是平时工作中经常用到的一部分: 读取文件并重新格式化 配合wc统计文件行数 查找文件后批量删除文件 批量关闭进程 批量修改文件的权限 批量解压文件 其它用法可使用xargs –help深入学习 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 [root@dev127 myb]# xargs --help Usage: xargs [OPTION]... COMMAND INITIAL-ARGS... Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.

linux-ag命令

ag命令 https://geoff.greer.fm/ag/ https://github.com/ggreer/the_silver_searcher ag的安装 macOS 1 2 3 brew install the_silver_searcher or port install the_silver_searcher Linux Ubuntu 1 apt-get install silversearcher-ag Arch 1 2 pacman -S the_silver_searcher zypper install the_silver_searcher CentOS 1 yum install the_silver_searcher Windows 1 2 3 4 5 Win32/64 Unofficial daily builds are available. winget winget install "The Silver Searcher" 下载地址:https://github.com/k-takata/the_silver_searcher-win32/releases 源码下载 1 git clone https://github.com/ggreer/the_silver_searcher.git

linux-du命令

du命令 du命令简介 du命令是linux系统里的文件大小查看的命令。 du命令的应用场景十分广泛: 需要查看单个目录里面多个文件总大小。 需要查看目录中每个文件的大小以及每个子文件夹中文件的大小。 查看日志文件的大小。 查看文件大小并排序,找出最大的或最小的文件。 其它需要统计文件大小的场景。 ls,df也有类似的功能,但是du更侧重于文件大小,并且更灵活好用。是运维人员、服务端开发人员以及其他linux用户很好的工具。掌握du命令的用法十分有必要。 du命令的使用 查看帮助 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 用法:du [选项].

mdbook-比gitbook更高效且简洁的markdown工具mdbook

比gitbook更高效且简洁的markdown工具mdbook mdbook简介 mdbook是一个用rust语言编写的md文档转换为html文档的工具。 mdbook与gitbook功能十分相似。 使用后直观感觉是mdbook速度比gitbook快不少。 mdbook与gitbook相比功能要少很多,但是速度快就是最大的优势。 mdbook只有一个可执行文件。相比gitbook不用安装一大堆的依赖库。 github地址 https://github.com/rust-lang/mdBook mdbook安装 安装方法1 先安装rust 1 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 1 cargo install mdbook 显示如下提示说明安装成功了 1 2 3 4 5 6 7 Compiling hyper v0.14.20 Compiling warp v0.3.2 Compiling ammonia v3.2.0 Compiling mdbook v0.4.20 Finished release [optimized] target(s) in 12m 24s Installing /Users/zp/.cargo/bin/mdbook Installed package `mdbook v0.4.20` (executable `mdbook`) 安装方法2 直接下载二进制:https://github.com/rust-lang/mdBook/releases 1 wget https://github.com/rust-lang/mdBook/releases/download/v0.4.20/mdbook-v0.4.20-x86_64-unknown-linux-gnu.tar.gz 使用 初始化一本书或一个笔记项目 1 mdbook init 初始化后会在当前目录生成src文件夹 启动mdbook 监听8000端口 1 mdbook serve --port 8000 后台启动mdbook 1 mdbook serve --port 8000 & mdbook-pdf install 方法1 1 cargo install mdbook-pdf 方法2下载可执行文件 https://github.

Vim插件:对齐插件-Tabular

vim插件-对齐插件tabular 简单介绍 vim中怎么按"=","+" 等符号对齐代码呢?使用tabular插件可以轻松解决。 tabular英语单词,主要用作动词,意思是:列成表格的 安装 使用Plug管理插件的话,.vimrc中加入如下代码: 1 Plug 'godlygeek/tabular' 使用其它管理工具的安装方法类似,这里就不介绍了。 不了解Plug管理插件的同学可以先了解一下相关方面的知识。 使用方法 例如按=号对齐代码 visual模式选中要对齐的行 进入底行模式输入Tabularize/= 单词太长记不住怎么办?按Tab键会有提示的。 1 :Tabularize/= 执行前 1 2 3 4 local a = 1 local hello = "hello" ```lua - 执行后 local a = 1 local hello = “hello”