摘要:
背景 可观测性是系统架构的基石,准确详细的度量是工程师的重要决策来源。对于微服务系统,除了传统意义上系统边界层的监控指标,服务内部调用的情况也需引起重视,这回就来分享下笔者在实现Feign调用监控的实战经验。 实现 先看看我们的监控对象:调用次数,附带标签有:服务名、uri、计数、状态码,这些信息或 阅读全文
摘要:
背景 由于MySQL供应商内部升级,线上数据库需要主动进行主备切换。切换基于SIP漂移,理论上是毫秒级闪断。但在实际模拟演练的过程中,除了预期内切换瞬间产生的连接异常外,后续半个小时仍不断地产生连接异常,导致问题不可控。 org.springframework.dao.RecoverableData 阅读全文
摘要:
文档版本:8.0 来源:buffer pool 上一篇:如何减少和处理死锁 本篇主要介绍InnoDB的缓冲池。 缓冲池(Buffer Pool)是InnoDB在内存中缓存表和索引数据的区域。通过缓冲池,那些被频繁使用的数据就能直接在内存中访问,从而加快业务处理。在MySQL专用服务器上,最多能有80 阅读全文
摘要:
背景 业务方需要实现一个曝光去重的功能,决定采用布隆过滤器,又因为是多节点应用,为保证数据一致性,通过Redis实现。本文记录下开发时的思路,以及优化过程。 初次实现 Redis4.0以上对布隆进行了插件支持,可以用特定的指令进行元素添加和判重,但考虑到不是所有环境的Redis都支持插件安装,以及违 阅读全文
摘要:
文档版本:8.0 来源:How to Minimize and Handle Deadlocks 上一篇:快照读与加锁读 本篇介绍如何减少死锁的发生,以及出现死锁时如何处理。 死锁指不同的事务因彼此持有对方等待的锁而不能继续执行的情形。因双方都在等待资源释放,任意一方都不会释放已有的锁。 正文 死锁 阅读全文
摘要:
文档版本:8.0 来源:Consistent Nonlocking Reads 、Locking Reads 上一篇:事务隔离级别 本篇主要介绍InnoDB的快照读与加锁读。 快照读严格来说应该翻译为一致的无锁读(Consistent Nonlocking Reads),但国内一般都称作快照读。在之 阅读全文
摘要:
概述 本系列上一篇:适配器、模版方法、装饰器 本文介绍的设计模式: 策略 观察者 代理 相关缩写:EJ - Effective Java Here We Go 策略 (Stragety) 定义:定义算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 场景: 阅读全文
摘要:
文档版本:8.0 来源:transaction isolation levels 上一篇:InnoDB中的锁 本篇主要介绍InnoDB的事务隔离级别。 事务隔离级别 事务隔离是数据库发展的基础之一。隔离性(Isolation)是ACID中的I;不同的隔离级别用于在性能和多事务并行查询时的可靠性、一致 阅读全文
摘要:
背景 最近看MySQL官方文档比较多,在此开坑翻译部分篇章,并附上一些旁注,用于展示实操结果,或者表达个人理解。 文档版本:8.0 来源:innodb-locking 此类形式为旁注。 本篇主要介绍InnoDB中的各类锁,而锁触发条件和应用场景不全在此篇中提及,后续会单独成篇进行讲解。 共享锁 & 阅读全文
摘要:
概述 本系列上一篇:建造者、工厂方法、享元、桥接 本文介绍的设计模式(建议按顺序阅读): 适配器 模板方法 装饰器 相关缩写:EJ - Effective Java Here We Go 适配器 (Adapter) 定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而 阅读全文