nomadli Blog

Thinking will not overcome fear but action will.

GO 内核

GO 源码剖析

分析常用命令 golang 内核 M 线程 P 调度器 G 协程 分析常用命令 go build -gcflags “-N -l” xx.go 禁止优化及内联 go tool objdump xxx 转汇编 gdb 单步调试汇编 golang 内核 asm_amd64.s 可执行程序入口地址 runtime.schedinit 初始调度...

perl 语法

IDE

基本语法 $定义变量 my 局部变量 local 局部变量,并对其调用的子域可见 our 当前package 全局变量,可以忽略默认为全局变量 {xxx => xxx,}; hash map 定义 sub 定义函数 @_ 函数参数按顺序存储在这个数组 $_[0] 函数第一个参数 @{$multi_array->[0]}多维数组的第一行 ...

VS Code 插件

IDE

定制性 VS Code不允许访问UI域,速度快,进程隔离 Atom 定制性强,速度慢,进程隔离 插件 插件在独立Node进程中运行(extension host process),能够访问VS Code扩展API 懒加载,在注册activation events事件触发下激活 onLanguage:${language} 打开特定语言的文档 onCommand...

网络相关

网络相关

减少用户态与内核态的内存拷贝 read换mmap,读文件共享内核内存 pip unix_sock socketpair 风险:当mmap多进程/线程使用时,后续操作可能因其他进程/线程修改mmap导致crash 处理:1.捕捉SIGBUS信号并直接返回,后续操作也被终止 2.fcntl(fd, F_SETSIG, RT_SIGNAL_LEASE) fcntl...

服务发现与配置中心

服务发现与配置中心

Consul Etcd 选择Consul 全部服务自建,无需第三方服务 服务发现及配置中心为一体 跨机房、跨云 自带web界面 Consul 基本信息 端口占用 8300 其他consul的传入请求。仅限TCP 8301 LAN中的raft协议。TCP和UDP。 83...

数据库

数据库持续交付

flyway 只适合比较小型的项目,可以使用java代码管理数据库 Liquibase

centos 服务安装

centos 服务安装

yum centos7 sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' -i.bak /etc/yum.repos.d/CentOS-*.repo centos8 sed -e 's|...

salt

salt

master salt-key -L 查看所有通过的minion key salt ‘key’ test.ping 测试被控主机联通性 salt ‘key’ cmd.run ‘ls -ls’ 执行linux命令 salt ‘key’ cmd.exec_code python ‘print sys.version’ minion /etc/salt/minion

kubernets

kubernets

概念 Node 运行着kubelet(angent)、容器(docker,rkt)的机器, k8 --register-node true node主动注册、false手动维护node HostName 可用通过 --hostname-override参数覆盖 ExternalIP 被集群外部的IP InternalIP ...

swig

swig

介绍 Simplified Wrapper and Interface Generator (SWIG) ,基本思想就是向脚本语言接口公开 C/C++ 代码。SWIG 允许您向广泛的脚本语言公开 C/C++ 代码,包括Perl、PHP、Python、Tcl、Ruby、C#、CLISP、Allegro CL、CFFI、UFFI、Java、Modula-3、OCAML、R、Guile、MzSch...