架构设计
文章平均质量分 92
FearlessVoyager
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Canal实时同步MySQL数据到Elasticsearch
目标:将MySQL中的 orders 表的任何变更(INSERT, UPDATE, DELETE)近实时地同步到Elasticsearch的对应索引中,并确保数据一致性和处理效率。MySQL: 数据源,需开启Binlog。Canal Server (Canal-Deployer): 模拟MySQL Slave,解析Binlog,将数据变更事件投递出去。原创 2025-11-08 17:12:40 · 660 阅读 · 0 评论 -
微服务 - 网关统一鉴权
网关统一鉴权,顾名思义,就是将原本分散在各个微服务中的身份验证和权限校验逻辑,抽取出来并集中到API网关这一层来统一处理。传统方式(无网关): 每个微服务(如用户服务、订单服务、支付服务)都需要自己实现一套鉴权逻辑,检查Token是否有效、用户是否有权限访问等。这会导致以下一系列问题:代码重复与维护困难:每个服务都需要编写和维护相似的鉴权代码,违反了“Don‘t Repeat Yourself”原则。标准不一:不同的开发团队可能实现不同的鉴权逻辑或安全标准,导致系统整体安全性不一致。原创 2025-11-04 23:30:05 · 776 阅读 · 0 评论 -
Flowable 工作流引擎
工作流引擎的核心是将业务逻辑与流程控制逻辑分离。开发者无需在代码中硬编码复杂的流程跳转和状态判断,而是通过流程定义文件(如 BPMN 2.0 标准)来描述业务流程,由引擎来解析和执行这个流程。原创 2025-11-02 17:17:41 · 1103 阅读 · 0 评论 -
Resilience4j 实现接口限流
Resilience4j是一个轻量级的容错库,可以帮助开发人员构建弹性和可靠的Java应用程序。其核心概念是“函数式编程”,允许开发人员使用Java 8的函数式编程特性来定义和组合容错策略,使得容错逻辑更加灵活、可读性更高,并且易于测试和维护。Resilience4j提供了一系列的模块,每个模块都用于解决不同类型的容错问题,以保护应用程序免受故障和异常的影响。:提供了断路器功能,可以阻止故障的传播和持续的失败调用。:提供了限流功能,可以控制调用的速率,以避免资源耗尽。Retry。原创 2024-07-17 17:43:15 · 1674 阅读 · 0 评论 -
Arthas 使用教程
Arthas 是阿里开源的一款 Java 诊断工具,支持动态监控和诊断 Java 应用。它可以在不重启应用的情况下,实时查看 JVM 状态、方法调用、线程信息等,非常适合生产环境中的问题排查和性能优化。主要功能特性实时查看方法调用参数、返回值、异常信息。监控方法执行耗时。动态修改运行时代码(热更新)。查看 JVM 运行状态。生成火焰图进行性能分析。反编译已加载的类。原创 2025-03-01 10:56:29 · 1708 阅读 · 0 评论 -
SSO 单点登录
单点登录(SSO)在微服务架构中是一个核心概念,它允许用户在一个应用中登录后,无需再次登录即可访问其他相互信任的应用。在微服务架构中,由于系统被拆分成多个独立的服务,如果用户每访问一个服务都要登录一次,那对用户的体验太不友好,而单点登录就是为了解决这个问题而生。简而言之,单点登录其本质就是多个系统之间的会话共享。原创 2025-10-31 20:37:32 · 843 阅读 · 0 评论 -
OAuth 2.0 安全授权
OAuth 2.0 是一个授权框架,它允许第三方应用程序在获得用户授权后,代表用户访问该用户在另一个服务提供商上存储的资源,而无需分享用户的密码。重要区别:OAuth 2.0 是关于授权,而非认证。认证:是确认“你是谁”的过程。(例如:用账号密码登录)授权:是确认“你被允许做什么”的过程。(例如:授权一个App来管理你的QQ邮箱)原创 2025-10-30 17:43:40 · 760 阅读 · 0 评论 -
分布式Session会话实现方案
分布式 Session 是一种在微服务架构中,保证用户会话(Session)数据能够在多个独立的、无状态的服务实例之间共享和保持一致的机制。以下是传统单体架构中的 Session与微服务架构中的 Session之间的对比:单体架构 Session:应用部署在一台服务器上。用户登录后,服务器会在本地内存中创建一个 Session 对象,存储用户ID、用户名等数据,并给浏览器返回一个唯一的 Session ID(通常保存在 Cookie 中)。原创 2025-10-29 16:14:48 · 953 阅读 · 0 评论 -
分布式锁实现方案
分布式锁其实就是控制分布式系统中不同进程共同访问共享资源的一种锁的实现。在分布式系统中各个微服务都是独立部署在不同的服务器上,如果多个服务同时操作同一个共享资源的话,就不能像单体服务那样通过synchronized或者Lock等同步机制保证一个代码块在同一时间只能由一个线程访问来实现共享资源的安全性。因为分布式系统中的不同服务已经不在是多线程之间的并发访问了,而是属于多进程之间的并发访问,所以就需要一种更加高级的锁机制,来处理这种跨JVM进程之间的线程安全问题。原创 2023-11-20 23:20:58 · 2298 阅读 · 1 评论 -
RPC 详解
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许程序在不同的计算机上执行过程或服务。RPC 使得开发者能够像调用本地函数一样调用远程服务,简化了网络编程的复杂性。使得开发者能够专注于业务逻辑,而不必过多关注底层的网络通信细节。首先,需要定义一个 gRPC 服务。// 定义请求消息// 定义响应消息// 定义服务。原创 2024-12-10 15:33:07 · 1900 阅读 · 0 评论 -
服务发布策略
服务发布策略,也称为部署策略或发布模式,是指在将新版本软件部署到生产环境时,所采用的技术方法和流程。其核心目标是:在保证系统整体稳定性和用户体验的前提下,安全、平滑、高效地发布新功能或修复问题。策略核心思想优点缺点适用场景停机发布先停后更简单服务中断低要求内部系统蓝绿发布冗余切换零停机、快速回滚资源成本高高可用无状态服务滚动发布逐步替换节约资源版本共存、回滚慢云原生、K8s 默认金丝雀发布小范围试水风险极低、实时验证周期长、技术复杂核心业务、高风险变更。原创 2025-10-25 14:30:04 · 963 阅读 · 0 评论 -
DDD 领域驱动设计
领域驱动设计(Domain-Driven Design,简称DDD)是一种软件设计方法,由Eric Evans在他的著作《Domain-Driven Design: Tackling Complexity in the Heart of Software》中提出。它主要关注于复杂系统的设计,强调通过领域模型来捕获业务逻辑和规则,并将软件系统的设计重心放在业务领域上。原创 2025-10-24 10:00:00 · 953 阅读 · 0 评论 -
设计模式详解
设计模式是可重用的解决方案,用于解决在软件设计中常见的问题。它们不是具体的代码,而是最佳实践的模板。通常将设计模式分为三类:创建型、结构型和行为型。实现方式:2.2 工厂方法模式 (Factory Method)目的:定义一个创建对象的接口,但让子类决定实例化哪个类。案例:日志记录器、数据库连接工厂。实现方式:2.3 抽象工厂模式(Abstract Factory)目的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。案例:GUI工具包,跨平台UI组件。实现方式:原创 2025-10-19 21:55:24 · 421 阅读 · 0 评论
分享