系统优化设计方案3.20周一例会

  目前媒资的接口系统需要出两个优化方案出来:一个是短期的稳定方案,另一个是长期的改造方案。

  短期内要解决的问题主要是:

  1. 批量mget导致cbase端返回给client响应慢,特别是mget的key数量越大这个现象越明显。

因mget请求导致整体接口服务响应慢,memc客户端发起重试2次,如果此时并发稍大些,同时会因无法从xmemcached连接池中获取连接而引发大量的TimeoutException,

出现TimeoutException异常memc客户端会重试2次,影响其他接口服务,最终引起雪崩,服务不可用。

  这个已经通过对moxi参数调优、memcached参数调优,有所缓解。下面需要通过对批量请求mget优化。另外考虑将现有集群换成redis(因为缓存服务部门cbase集群是比较成熟的,所以有风险)。但是我15年入职时就听过一些其他部门的技术分享,提到了cbase的不稳定因素,最后他们的解决方案也是不使用乐视统一的cbase集群,自己搭建私有集群,稳定性得到很大提高,所以这个是值得尝试的。目前cbase里存的是全量缓存,使用redis的mget,基本不存在取不到需要穿透到DB的问题。但是目前要解决的是 mget的性能问题,那么搭建redis集群需要考虑采用哪种集群:codis, twemporxy, redis cluster能更好的支持这一点。因为在分布式下涉及怎样同时取多个Redis上多个key。将多个key按照算法分组,然后再合并多组回应的问题。就是redis集群的路由问题。

  德伟回复:问过负责redis的徐雷不建议redis使用mget方式

  2. 数据库分库分表问题

  媒资千万级数据表的拆分,需要备忘的是将更新时间换成时间戳根据当前时间自动更新的问题。目前其他业务线的依赖已经由直接的数据库访问改成了消息推送的方式,解决了耦合导致的数据库结构改变对其他部门的影响。德伟提出我们根据时间戳进行更新,那么更新改成几秒钟一次,数据量会不会增大?会上忘了回复这一问题:除非对同一数据的修改十分频繁,不然推送的总量应该是差不多的,那么时间间隔小,每次对MQ的压力应该是更小更均匀了。 拆分前需要将中国站的数据进行一次数据迁移到分表,需要和调用方沟通的问题。数据表拆分要解决的问题是:专辑ID可能会变,专辑下面关联视频,所以以什么依据来进行拆分的问题。

  3. 预告片的接口优化问题

  预告片是否可以考虑不走缓存,直接进行数据库索引来取返回结果。这么做的原因是有次线上事故,是由于预告片取的过多。每次都走缓存mget。mget本身key过多,性能下降快,导致其他服务处于等待超时。不走缓存,可以避免这样的突发情况造成的缓存瓶颈。

  德伟回复:最初想计算完后放到缓存中。走索引每次穿透db按现在量也问题不大,需要压测出个结果对比下. 生产服务器都有权限 可以看下, 现在qps很低

  长期改造:

  目前媒资接口需求和数据增长量趋于稳定,需要进行一次彻底的改造和重构。需不需要将dubbo层的面向服务层去掉?我的偶像马丁福特说:分布式的最基本原则是尽量不要分布式。well,这只是我的意见。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

pg数据库有雷锋?用户已有权限为何无故消失?

作者介绍:何剑敏 Oracle ACS华南区售后团队,首席技术工程师。多年从事一线的数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库的整体运维。...

3575
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–应付账款(158)-3 F110使用付款程序过帐预付款

4.3 F110使用付款程序过帐预付款 对供应商的预付定金可使用付款程序自动过帐。 必须过帐预付款。 必须不激活支付发布清单和直联支付(EPIC)应用程序才能...

34711
来自专栏大数据和云计算技术

大数据仓库—增量更新

现在是国内凌晨3点,为了抵挡睡意,还是写写技术博客。今天和大家讨论下大数据仓库中的更新技术。 当前很多大数据技术,如HDFS最早设定的是数据不更新,只增量叠加。...

40611
来自专栏开源优测

移动测试入门之功能测试

移动端的功能测试通常由用户交互的测试及测试事务构成。 影响功能测试的因素有: 基本功能及业务流(银行?游戏?保险?等等) 目标用户群体(个人用户?企业用户?等等...

3006
来自专栏java架构技术

推荐:非常全面的 MySQL 高性能优化实战总结~

MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是...

1492
来自专栏架构师之路

用uid分库,uname上的查询怎么办?

1分钟系列 【缘起】 用户中心是几乎每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。 当数据量越来越大时,需要多用户中心进行水平切分。...

3614
来自专栏云计算

微服务原则:去中心化数据管理

微服务的理念主张将软件设计的各方各面进行去中心化。这种对去中心化的关注不仅指导业务逻辑的组织,它还会指导人们如何对数据进行存储。

6164
来自专栏Python研发

linux入门总结

linux的核心概念知识:      linux软件是开源免费的,而linux是由Unix演变而成,Unix是由MINIX演变而成。 2000年以后,linu...

1272
来自专栏CSDN技术头条

史上更全的 MySQL 高性能优化实战总结!

MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要...

1672
来自专栏张善友的专栏

MongoDB新版本特性

MongoDB 2.4已经发布,该版本增加了一些新特性,如文本搜索、基于哈希的分片、更好的地理空间功能、支持GeoJSON以及一些性能和工具方面的提升。我们还和...

2035

扫码关注云+社区