Golang不使用cgo,直接操作共享内存。

前言

故事起源于要搭一个高性能的日志中心。当然使用了elk这一套。但是,对于logstash来说, 它主要使用的是文件日志的方式了捕捉log。而写文件日志的话会非常慢。对于实时日志要 处理滚动的日志更是这样,每次检查是否需要流动日志,然后打开日志,然后写入,然后 关闭,当然这中间可以优化。这一切都是那么慢,发起了n个系统调用,硬盘寻道等。这时 候想到了用共享内存来通信。

……