使用node scribe上报日志,查询结果的时候发现中文字符变成了乱码,经询问服务端,日志在上传时就已经是乱码了,说明是端上的问题,所以排查node scribe的问题。
借用网上一张scribe架构图
据图可以看出scribe是基于Thrift通信的,node-scribe中也是依赖了thrift包。数据编码的问题一般就是在通讯层。
要解决中文编码问题,需要对node-scribe的thrift使用进行调整。具体两点:
将目前node scribe包的thrift版本从0.7.0 升级到0.9.3
-
指定thrift的数据传输按帧的形式发送
thrift.createConnection(this.host, this.port, {transport: thrift.TFramedTransport});
由于这里需要改动node scribe包,怎么办呢?
github上fork一份,自己改代码,然后在package.json中将scribe包指定为自己git的项目地址
如果改动后还是不能解决中文编码问题,可以继续搜索「thrift中文编码」,而不是搜索scribe
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。