这是学习笔记的第 2047 篇文章
最近做了一个基于中间件业务的性能优化,想来还是感慨不少,优化仍在进行中,现在是在做最后的确认阶段。
整个系统架构如下所示,整体对外服务访问是使用LVS+keepalived的方式实现的。
中间件层主要是做数据访问路由,使用MyCAT实现。
而数据节点层是我们常说的数据库实例。
目前存在的问题是我们需要对标线上业务的性能指标,目前的性能指标初步定为查询为1.9ms,写入为7ms,而我们明确的指标查询在1ms以下,而数据写入在5ms以内。
面对这种情况,我们讨论了很多种可能的改进方案。
比如方案1:
这种方案在应用端切换过来之后,性能不降反升,而且表现很不稳定,这是毫秒级的要求,和单纯的可用是两码事。
所以在周末跑了两天这些对比测试之后,发现这个问题单单通过直连的方式难以解决。
方案2:基于DNS的方式来实现负载均衡。
这种方案看起来少了一层,可以直接通过域名的方式来进行处理。不过这一层限于环境配置还没有正式开始,而且consul的域名服务也难以保证性能和可用率在毫秒级完全可控。所以这需要打一个大大的问号。
按照刚才测试的情况,果断添加了一个中间件,这个时候效果好了很多。
按照这个指标情况,是能够满足线上的性能压力的,而对于这个部分的测试和重构依然会进行,尝试找到一个更合适的方案。