高可用三大利器 — 熔断、限流和降级

在武侠世界里,“利器”通常指的是武器中的上乘、出色之物;武器对于武者的重要性不言而喻,拥有一把优秀的武器可以让武者在战斗中更加得心应手,威力更强。在分布式系统追求高可用的背景下,熔断、限流和降级这三个重要的策略可以称得上三大利器。降级和熔断是不是一回事?限流 与 降级呢? ...阅读全文

Arthas -- 一款释放潜力的神器

1. 介绍 阿里巴巴 Arthas 是一个诊断工具,可以用于监视、分析和解决 Java 应用程序的问题。使用 Arthas 的一个主要优点是,我们不需要修改代码,甚至不需要重新启动我们想要监视的 Java 服务。 在本教程中,我们将首先安装 Arthas,在此之后,通过一个简单的案例来演示 Arth ...阅读全文

微信万亿数据仓库架构设计与实现

没有足够的特征数据,安全策略将是"无根之木,无源之水"。微信安全数据仓库应运而生,成为整个安全业务的特征数据存储中心,每天服务了万亿级的特征数据读写请求,为整个微信安全策略提供了可靠的数据支撑,是微信安全基石之所在。然而,微信安全数据仓库不仅仅是一个存储中心,更是一个特征管理和数据质量管理的中心。在... ...阅读全文

高可用三大利器 — 熔断

高可用的三大利器是熔断、限流和降级。它们都是在分布式系统中用于保障系统稳定性和可用性的重要策略。熔断(Circuit Breaker):熔断是一种防止故障扩散的机制。当一个服务出现故障或超时,熔断器会打开并快速失败,拒绝后续的请求,避免请求堆积和资源耗尽。熔断器会暂时屏蔽该服务,并在一段时间后尝试恢... ...阅读全文

实战总结|复杂系统设计原则与案例

本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要花心思去想,如「变与不变分离」、「配置域与执行域分离」、「查询与命令分离」。 ...阅读全文

DDD架构为什么应该首选六边形架构?

采用依赖倒置原则后的分层架构和六边形架构,实际上都符合整洁架构设计理念。但是六边形架构中使用端口与适配器,让应用程序能够以一致的方式被用户、程序、自动化测试、批处理脚本所驱动,同时能够让应用程序边界更加清晰,从而能更好地防止领域层和应用层逻辑泄露到外层。 ...阅读全文

分布式系统中的数据复制

本文翻译自国外论坛 medium,原文地址: # 什么是数据复制? 数据复制是指将数据复制到一个或多个数据容器以确保可用性的过程。复制的数据通常存储在不同的数据库实例中,即使一个实例发生故障,我们也可以从其他实例获取数据。 一种流行数据复制的实现架构是主从架构。 > 推荐博主开源的 H5 商城项目* ...阅读全文

对于装饰器模式与代理模式的个人理解

对于这两个十分接近的设计模式,确实容易产生困惑,代理模式和装饰器模式看起来十分相似,都是由两个类实现相同的接口,然后一个类套另一个类。这件事足足困扰了我5分钟之久,在此总结一下它们的差别。 ## 目的不同 当你想要增强你的类,给你的类增加新功能的话,你就该使用装饰器模式了。 装饰器模式由于添加了功能 ...阅读全文

《架构整洁之道》学习笔记 Part 2 编程范式

计算机编程发展至今,一共只有三个编程范式: - 结构化编程 - 面向对象编程 - 函数式编程 ### 编程范式和软件架构的关系 - 结构化编程是各个模块的算法实现基础 - 多态(面向对象编程)是跨越架构边界的手段 - 函数式编程是规范和限制数据存放位置与访问权限的手段 **软件架构的三大关注重点** ...阅读全文

重温设计模式 --- 前篇

## 引言 软件开发过程中,我们经常会遇到各种设计问题,例如如何管理对象之间的关系、如何优化代码的可复用性和可维护性等等。为了解决这些问题,我们可以使用设计模式。 设计模式是一种被广泛接受的软件设计思想,它提供了一套通用的解决方案,可以帮助我们更好地解决常见的软件设计问题。设计模式是从实践中总结出来 ...阅读全文

重温设计模式系列 --- 完整精华篇

## 引言 软件开发过程中,我们经常会遇到各种设计问题,例如如何管理对象之间的关系、如何优化代码的可复用性和可维护性等等。为了解决这些问题,我们可以使用设计模式。 设计模式是一种被广泛接受的软件设计思想,它提供了一套通用的解决方案,可以帮助我们更好地解决常见的软件设计问题。设计模式是从实践中总结出来 ...阅读全文