1 背景 慢查询是指数据库中查询时间超过指定阈值(美团设置为100ms)的SQL,它是数据库的性能杀手,也是业务优化数据库访问的重要抓手。随着美团业务的高速增长,日均慢查询量已经过亿条,此前因慢查询导致的故障约占数据库故障总数的10%以上,而且高级别的故障呈日益增长趋势。因此,对慢查询的优化已经变得刻不容缓。…
Sonic是美团内部研发设计的一款用于热部署的IDEA插件,本文其实现原理及落地的一些技术细节。在阅读本文之前,建议大家先熟悉一下 Spring源码 、 Spring MVC 源码 、 Spring Boot源码 、 Agent字节码增强 、 Javassist 、 Classloader 等相关知识。 1 前言 1.1 什么是热部署…
Redis是一个流行的NoSQL数据库系统,被广泛应用于各种场景中。然而,在使用Redis时,我们经常会遇到一些问题,其中之一就是过期键回调问题。过期回调是指在Redis中,当一个键被设置了过期时间后,如果在过期时间到达之前这个键被更新了,那么原来设置的过期时间就会失效。这种情况下,我们需要一种方法来处理这个过期事件。…
一、背景介绍 技术同学对定时任务肯定不陌生。定时任务一般用来定时批量进行业务处理。支付宝卡包券到期提醒、删除过期失效券,五福大促批量给用户发放添福红包等场景,都是通过定时任务触发来完成的。…
作者简介 作者张乘辉,擅长消息中间件技能,负责公司百万 TPS 级别 Kafka 集群的维护,作者维护的公号「后端进阶」不定期分享 Kafka、RocketMQ 系列不讲概念直接真刀真枪的实战总结以及细节上的源码分析;同时作者也是阿里开源分布式事务框架 Seata Contributor,因此也会分享关于 Seata 的相关知识;当然公号也会分享 WEB…
通过原子操作实现 redis 锁 redis 内部是通过 key/value 的形式存储的,核心原理是设置一个唯一的 key ,如果这个 key 存在,说明有服务在使用 具体实现方式: 首先判断 redis 中是否存在某个 key ,并且为某个值 如果这个 key 不存在,说明当前没有服务在使用,设置 key 如果这个 key…
有时候,我们需要对所有微服务跨域请求进行处理. 跨域的说明: 哪些场景是跨域:不同的系统进行AJAX的请求的时候属于跨域的。 跨域的请求一般是不被允许的。 1.www.jd.com—->www.taobao.com 跨域 2.localhost:8001 —>localhost:8002 跨域 3.www.jd.com:80—>www.jd.com:81…
本文从研发规范层面、应用服务层面、存储层面、产品层面、运维部署层面、异常应急层面这六大层面去剖析一个高可用的系统需要有哪些关键的设计和考虑 一、高可用架构和系统设计思想 可用性和高可用概念…