golang多版本管理

在我们的开发环境中,使多个golang版本并存。

大部分情况下,一个比较新的golang版本就能满足我们的日常的开发需求。 但是项目中,因为协作的原因,或者由于项目启动比较早,可能我们不同的工程需要用不同的golang版本。甚至有些工作用比较新的版本编译不了。 这时候,我们就需要让本地的开发环境支持多个golang版本。

……

Continue reading

中国计算机网络拓扑结构

骨干网

网络架构

网络框架 主要分层汇接方式。纵向分为骨干网、城域网、接入网三个层级。 骨干网是最顶层的省际高速网络,基础电信运营商在各省会及主要城市设置骨干节点,并在节点间设置直联路,共同构成骨干网。 骨干网内分了核心节点和接入节点。

……

Continue reading

fdump tcp抓包框架

fdump是一个创建抓二进制包解析程序的框架。 对于自定义的二进制通信协议,在调试的时候会很困难。无论tcpdump还是wireshark抓到包都不能直接看到里面的内容。

……

Continue reading

ntp客户端同步时间

linux使用ntp客户端自动更新时间。

使用ntp客户端工具ntpdate定期执行来进行同步时间。ntpdate只需要加ntp服务器的机器即可。 假如ntp的服务器为10.1.2.3,则同步命令为ntpdate 10.1.2.3。同步完时间后, 还可以使用hwclock -w来同步到硬件时间。

……

Continue reading

服务器超时时间和请求队列大小设置

服务器超时时间和请求列表大小关乎程序的健壮性。设置过小,会导致有效的请求被丢掉。 设置过大,严重的情况下会引起雪崩。

超时

很多后台码农对超时时间的设置都没什么概念,特别是刚毕业的后台码农。 一般都是参照前人的代码,设置一个相同的超时,而且一般都是比较大的超时,只要程序能跑就没问题了。

……

Continue reading

nf_conntrack调优

深入了解conntrack调优。

netfilter

netfilter是linux内在的一个软件框架,用来管理网络数据包。

netfilter提供了5个hook来进行管理网络包。如下图: netfilter-hooks

……

Continue reading

libpcap入门教程

libpcap是一个开源的,用于捕捉网络包的库。可以在大部分*nix系统下运行。另外, 还有一个windows版本的叫做winpcap。

包捕获

包捕获是收集网络上数据的过程。

……

Continue reading

mongo跨集群复制集同步

mongo的跨集群复制集同步方案。

在生产环境上使用mongo,需要考虑容灾。在跨idc的容灾方案上,我们需要把数据库同步到其他的idc去, 这样即使一个idc挂了,另一个idc还可以服务,而且数据不会丢。

……

Continue reading