通过cgo可以将go的程序编译成库,在其他程序,如C程序中调用。cgo本身就提供了多平台的支持。不过对于每个平台还需要有相应的C编译工具链的支持,对不同平台的支持程度也不一致,需要针对每个平台单独处理。
Linux下使用tc和netem模拟复杂网络环境
发表于
|
分类于
日常记录
netem(Network Emulator)可以用来对网卡发出的数据包进行增加延迟、丢包、重复、乱序等处理,来模拟复杂网络环境。netem的设置依赖tc命令,tc是Linux内核提供的流量控制工具。
基于sentinel构建高可用redis集群的注意事项
发表于
|
分类于
日常记录
部署redis高可用集群时,通常会用到redis官方的sentinel。sentinel监控master状况,master宕机时进行集群master的故障转移。部署时方法网上很多,这里列出了一些需要注意的事项。
对接JAVA SM2加密遇到的坑
发表于
|
分类于
日常记录
遇到有接口需要使用国密的SM2算法,对方使用的是JAVA,我们使用的是go,原以为都是标准算法不会有什么大问题,结果巨坑无法..
CentOS 7 使用kubeadm 部署 Kubernetes
发表于
|
分类于
日常记录
关闭swap
程序的调试信息
发表于
|
分类于
日常记录
调试二进制程序时,经常要借助GDB工具,跟踪程序的执行流程,获取程序执行时变量的值,以发现问题所在。GDB能得到这些信息,是因为编译程序时,编译器保存了相应的信息。Linux下的可执行程序和链接库一般为ELF格式(Executable and Linking Format),调试信息以DWARF格式保存。
bash执行shell脚本时报错 save_bash_input: buffer already exists for new fd XXX
发表于
|
分类于
日常记录
最近发现在lua中通过os.execute执行系统shell脚本时,偶尔会发生错误退出,最后发现是bash本身的问题。
第一个tensorflow程序
发表于
|
分类于
日常记录
使用docker镜像运行一个tensorflow的Hello World项目。
ngx_lua的代码缓存
发表于
|
分类于
Openresty
Lua代码的执行一般要先将代码变成成字节码,然后再Lua虚拟机中执行字节码。lua-nginx-module将编译后的结果保存了下来,这样只需要编译一次,之后便可以直接使用,省去了编译的消耗。
Nginx的文件分片-slice模块
发表于
|
分类于
Nginx
Nginx的slice模块可以将一个请求分解成多个子请求,每个子请求返回响应内容的一个片段,让大文件的缓存更有效率。