微服务是大型架构核心,下面我详解微服务架构方案@mikechen
微服务数据共享设计

数据共享设计指多个微服务直接读取或依赖同一份数据源,最常见的是共享数据库、共享缓存或共享读模型。
它实现起来最简单,适合系统早期或遗留系统改造阶段。
优点:
开发快,多个服务可以直接使用已有数据。
查询方便,跨服务的数据联查成本低。
迁移成本小,适合从单体向微服务过渡。
缺点:
服务之间耦合强,一个表结构变更可能影响多个服务。
容易破坏微服务“边界清晰、独立演进”的原则。
写入冲突、权限混乱和一致性问题更明显。
应用场景:
单体拆分初期,业务还没完全分域。
微服务聚合设计

聚合设计指在一个聚合层统一调用多个微服务,再把结果组装成一个面向前端或上层系统的返回值。这个聚合层可以是 API Gateway、BFF,或者专门的聚合服务。
优点:
前端一次请求就能拿到完整数据,减少多次调用。
隐藏后端服务拆分细节,客户端更简单。
方便做页面级、场景级的数据编排。
缺点:
聚合层会变复杂,尤其是多服务串并行调用时。
容易成为性能瓶颈,聚合逻辑过重会拖慢整体响应。
需要处理部分服务失败、超时、降级和重试。
应用场景:
统一门户、移动端首页、详情页这种“一个页面要很多数据”的场景。
微服务代理设计

代理设计通常指通过网关或代理层把请求透明转发到后端服务,代理层主要负责路由、鉴权、限流、日志、协议转换等,不负责业务聚合。Spring Cloud Gateway 就是这一类方案的典型代表。
优点:
对客户端透明,后端服务地址和变更细节被隐藏。
便于统一治理,比如认证、限流、灰度和监控。
便于服务扩容和路由切换,适合动态微服务环境。
缺点:
只做转发不能解决复杂页面组装问题。
网关本身是关键基础设施,需要高可用和性能保障。
如果把太多业务逻辑塞进代理层,会导致职责混乱。
应用场景:
统一入口、统一鉴权、统一限流的系统。
服务实例经常变化,需要动态路由的云原生环境。
多团队共用一套 API 边界,希望对外接口稳定。
微服务异步消息设计

异步消息设计指服务之间不直接同步调用,而是通过消息队列、事件总线或发布订阅方式通信。常见模式包括订单创建后发事件,库存、积分、通知等服务异步消费。
优点:
降低服务耦合,生产者不需要知道消费者是谁。
提高吞吐量,适合削峰填谷和高并发场景。
提升容错性,某个下游服务短暂不可用时不会立刻阻塞主流程。
缺点:
一致性变成最终一致性,业务设计更复杂。
消息重复、丢失、顺序问题都要额外处理。
排查问题更难,需要完善的链路追踪和消息监控。
应用场景:
下单后发通知、发券、加积分、建索引等非强实时场景。
大促、秒杀、抢购等需要削峰的场景。
多服务联动但不要求强事务一致性的业务。