1 发现线上redis问题:ERR Connection timed out
近日,刚上线一个系统,上线第二天去ELK日志系统(公司的日志系统是对开源实时日志分析ELK平台进行了改造而来的)跟踪一下线上情况,一时发现抛出了很多redis异常:
再仔细一看:
发现连接redis有问题,于是立即联系运维,运维的回答是他们线上使用了twemproxy集群技术,redis服务并没有问题。于是我就方了,难道是程序使用redis不对。。。
2 定位问题
由于之前对twemproxy并不了解,于是了解了一下twemproxy实现集群的原理。其设计如下图,机制就是将分片工作交给专门的代理程序来做。代理程序接收到来自业务程序的数据请求,根据路由规则,将这些请求分发给正确的Redis实例并返回给业务程序。
然后到github上查看了twemproxy相关的说明文档,希望能得到一些线索。从这个文档(https://github.com/t