Elastic Stack 的演进

Elastic Stack 是由 Elastic 公司推出的一个技术栈,包括但不限于 beats、logstash、elasticsearch、kibana 等软件。

目前整体的架构 大致如下:

01.png

Read more

Git Rebase

分支合并,有两个选择,一个是 merge,另一个是 rebase

  1. mergerebase 合并后的结果是一模一样的,形象的说,二者是殊途同归。

  2. 使用 rebase 后的 commit 与之前的 commit,它们的 SHA-1 值不同,Git 会把它们看成两次提交。

Read more

Git 回滚合并

假设有如下分支图:

unmerge1.png

注: Git 分支图中的箭头表示依赖关系,并不是分支发展路线。 发展路线和箭头是相反的。 也就是图中是从 C1 开始一直发展到 C12 的。

假设要回滚 C10。

第一种解决方案是将 master 回退到 C8,然后将两个特性分支 jk/post-checkoutdb/push-cleanup 合并过来。

git checkout master
git reset --hard [sha_of_C8]
git merge jk/post-checkout
git merge db/push-cleanup

完成之后,分支图如下:

unmerge2.png

Read more

Git 删除远程服务器文件同时保留本地文件

在上传工程到 git 上时,有时候会把本地的一些配置文件传到服务器上。 这时先删除本地,再同步服务器,显然是不合理的。

git 提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下:

git rm --cached filename/-r directory
git commit "xxxx"
git push

Read more

Git 分支管理模型

单主干

单主干的分支实践(Trunk-based development TBD)在 SVN 中比较流行。 Google 和 Facebook 都使用这种方式。

trunk 是 SVN 中主干分支的名称,对应到 Git 中则是 master 分支。

TBD 的特点是所有团队成员都在单个主干分支上进行开发。 当需要发布时,先考虑使用标签tag,即 tag 某个 commit 来作为发布的版本。 如果仅靠 tag 不能满足要求,则从主干分支创建发布分支。 bug 修复在主干分支中进行,再 cherry-pick 到发布分支。

git-branch-01.png

Read more

TCPCopy 常见问题

TCPCopy 常见问题:

出现 timeout 或者是频繁丢包

sysctl -w net.core.rmem_max=131071
sysctl -w net.core.wmem_max=131071
sysctl -p

虚拟机使用 ab 测试的结果 会有包堆积的情况 不会马上处理 在 ab 测试数据跑完后 依然在处理数据包

10000    100    缺包不明显
10000    500    出现 ack 处理异常 缺包不明显
10000    1000   出现 ack 处理异常 缺包不明显 有内存堆积不到 1MB 
10000    2000   出现 ack 处理异常 缺包明显 3000 左右 有内存堆积 11MB
20000    500    出现 ack 处理异常 缺包不明显 有内存堆积 11MB
20000    1000   出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 21MB
20000    2000   出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 28MB

Read more

使用 TCPCopy 做引流测试

tcpcopy结构.png

TCPCopy 默认从 IP 层抓包,从 IP 层发包,在测试服务器进行响应包的截获,并通过 intercept 程序返回响应包的必要信息给 TCPCopy。

在线上要引流的机器和测试机分别安装 TCPCopy,版本 tcpcopy-0.9.6.tar.gz

然后

configure
make
make install

Read more

Page 2 of 4