微服务架构将一个大型的单体应用拆分为一组小型的、松耦合的服务。每个服务运行在自己的进程中,并通过轻量级机制(通常是 HTTP API)进行通信。
常见设计模式
1. API 网关 (API Gateway)
API 网关是系统的单一入口点。它负责请求路由、负载均衡、认证、限流等功能,屏蔽了后端服务的复杂性。
2. 服务发现 (Service Discovery)
在微服务环境中,服务实例的网络位置(IP 和端口)是动态变化的。服务发现机制允许服务相互查找和通信。常见的工具有 Consul, Eureka, Etcd。
3. 断路器 (Circuit Breaker)
为了防止服务故障级联扩散,断路器模式监控服务调用的失败率。当失败率达到阈值时,断路器“跳闸”,快速返回错误,给下游服务恢复的时间。
4. Saga 模式
用于解决分布式事务问题。Saga 将一个长事务拆分为一系列本地事务,每个本地事务更新数据库并发布消息触发下一个本地事务。如果某个步骤失败,则执行补偿事务(Compensating Transaction)来回滚之前的操作。
微服务的挑战
微服务虽然带来了灵活性和可扩展性,但也引入了分布式系统的复杂性,如网络延迟、数据一致性、运维难度等。

发表评论 取消回复