首页 / 技术专题CATEGORY / SPRINGFORALL

架构运维

在这个技术方向,积累扎实的知识与实践。

共 315 篇文章

如何设计一个支持 600 万在线用户、峰值每秒 10 万请求的系统

设计一个支持600万同时在线用户的高并发系统,需要从架构设计、技术选型、性能优化等多个方面综合考虑。以下是详细的设计思路和面临的挑战: 一、架构设计 1. 分层架构 • 客户端层 :通过CDN加速静态资源分发,减少服务器压力。 • 负载均衡层 :使用LVS、Nginx、HAProxy等负载均衡器,分散请求到后端服务器。 • 应用服务层…

使用装饰器模式实现在线支付系统

本文我们将解决一个关于设计模式的 Java 面试问题,重点介绍在生产级应用中常用的 装饰器模式 。装饰器模式是一种结构型设计模式,允许动态扩展对象的行为。这种模式在需要多种功能组合的场景中非常有用,同时避免了继承的复杂性。 问题 解释装饰器模式。 为在线支付系统提供一个 Java 实现,其中不同的支付类型(如信用卡、PayPal…

MySQL 数据复制:从 Binlog 到主从同步的最佳实践

1. 前言 在现代分布式数据库架构中,数据的高可用性和一致性是至关重要的。MySQL 作为最流行的关系型数据库之一,提供了多种机制来确保数据的高可用性和容错性。其中, binlog(二进制日志) 和 主从复制 是实现高可用性和灾难恢复的重要技术。 在本篇文章中,我们将深入探讨 MySQL binlog 的原理、配置以及如何通过 binlog…

优雅实现多系统一致性补偿方案

前言 我们在开发的过程中,如果一个业务操作需要本地写MYSQL数据以及对第三方系统做写操作,那么这种流程就涉及到分布式系统一致性的问题,然而并非所有系统都能使用成熟的分布式事务方案 PS:示例代码推送到: https://gitee.com/dailycreatebug/demo-codes 案例说明 以一个财务报账业务为例,涉及到的系统如下: 系统名…

谈一谈三方接口调用方案设计

在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题。 在设计三方接口调用的方案时,需要考虑到安全性和可用性。以下是一种设计方案的概述,其中包括使用API密钥( Access Key/Secret Key )进行身份验证和设置回调地址。 设计方案概述 1.API密钥生成:…

MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题

在MySQL中,InnoDB引擎通过 Next-Key Locking 技术来解决幻读问题。幻读是一种事务并发问题,通常出现在 Repeatable Read 隔离级别下的范围查询操作中。幻读的现象是,事务在查询时多次执行相同的范围查询,但由于其他事务的插入或删除操作导致结果不一致,出现“幻觉”一样的记录。 Next-Key Locking 技术结合了…

一次彻底讲清如何处理mysql 的死锁问题

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导致所有事务都无法继续执行的现象。在 InnoDB 存储引擎中,死锁是通过锁机制产生的,特别是在并发较高、业务逻辑复杂的情况下,更容易发生死锁。 一、MySQL 死锁的成因 MySQL 的死锁一般发生在 行级锁 上。常见的死锁成因包括: 事务 A 和事务 B 持有互相需要的锁 :事务 A…

一文彻底弄懂mysql的事务日志,undo log 和 redo log

在数据库事务管理中, Undo Log 和 Redo Log 是两种关键日志,用于保障事务的 原子性 和 持久性 。它们的作用是确保数据库在出现崩溃、断电、宕机等故障时,能够进行恢复操作,从而保障数据一致性和完整性。它们通常用于支持事务的 ACID 特性中的 原子性 和 持久性 。下面将分别介绍 Undo Log 和 Redo Log…

一文彻底弄懂MySQL的MVCC多版本控制器

InnoDB 的 MVCC(Multi-Version Concurrency Control,多版本并发控制) 是 MySQL 实现高并发事务处理的一种机制。通过 MVCC,InnoDB 可以在高并发环境下支持 事务隔离 ,并提供 非阻塞的读操作 ,从而避免锁定所有读操作带来的性能瓶颈。MVCC 允许事务在不加锁的情况下读取数据,保证了性能和一致性。…