4

云服务使用过程的问题小记

 11 months ago
source link: https://www.barretlee.com/blog/2022/08/05/bicgb6/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

云服务使用过程的问题小记

作者: Barret李靖 2022-08-05 09:01:37 分类: 观点和感想 标签: 小胡子哥的碎语 评论数:

记录最近使用基础云设施的过程中遇到的几个有意思的问题:

1、OceanBase 数据库锁问题
给业务数据模型扩充了一个远程方法调用,利用 ORM 的 hooks 特性加到了 afterCreate 中,导致偶发数据库锁。原因是业务存在事务处理批量调用,新增的 RPC 操作让事务整体时长变得十分漫长,过程中出现了对同一实体的操作被锁。

2、RocketMQ 消息不消费产生堆积
开发环境和测试环境复用了同一个 MQ 消息 Group,为了区分不同的环境,消息在提交和消费的时候都增加了 env Tag,结果在消费的时候,始终丢消息。原因是同一个 Group 对应的 Consumer,其 Topic 和 Tag 必须保持完全一致,否则会因为 RocketMQ 储存模型和消息拉取模型的设计问题导致消息消费不了。

3、MongoDB CPU 暴涨
为了查询更快,给一张表增加了复合索引,突然在某段时间,MongoDB 的 CPU 上涨,飙高到 100%。原因是表体积增长过快,插入一条数据时,需要完成大量的索引更新,每次更新耗时会超过 100ms,服务器不堪重负,最终导致吞吐量变成零。

业务规模扩大之后,类似的云服务使用问题会出现的越来越频繁,也正因如此,事情变得越来越有意思了。感知这些问题,需要对服务的使用和原理有比较全面的了解,同时也需要掌握相应的工具和方法,把核心问题的监控做到位,才有可能避免线上故障。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK