进阶版Java面试高频问题(34-35)

三十四、微服务拆分策略与反模式应对

 微服务拆分四维评估模型

mermaid

graph TD

    A业务维度 -->领域驱动设计 B(聚合根划分)

    A -->业务生命周期 C(独立迭代周期)

    D技术维度 -->数据耦合度 E(共享数据库风险)

    D -->通信复杂度 F(gRPC/REST选型)

    G运维维度 -->资源隔离需求 H(容器化部署)

    G -->监控粒度 I(链路追踪覆盖)

    J团队维度 -->DevOps能力 K(自治团队划分)

 

 典型反模式解析

案例1:过度拆分导致性能恶化

- 问题:某电商将订单服务拆分为订单创建/查询/支付3个微服务

- 现象:端到端延迟从200ms上升至1500ms

- 根因:本地调用变为跨服务RPC(3次网络跳转)

- 解决:合并高频操作为订单服务聚合接口

 

案例2:共享数据库引发的数据竞争

- 问题:用户中心与订单服务共享MySQL实例

- 现象:库存扣减时出现超卖

- 根因:未实现分布式锁导致并发问题

- 解决:引入Redis RedLock+本地消息表

 

 阿里ACNA拆分方法论

java

// 领域驱动设计示例

public class OrderAggregate {

    @CommandHandler

    public OrderAggregate(CreateOrderCommand cmd) {

        apply(new OrderCreatedEvent(cmd));

    }

    

    @EventHandler

    public void on(OrderPaidEvent evt) {

        // 触发库存服务扣减

        inventoryService.deduct(evt.getOrderId());

    }

}

 

 

 三十五、可观测性三支柱体系构建

 可观测性成熟度模型

 级别 监控手段 典型指标 工具示例 

 L1 基础指标监控 CPU/内存/磁盘使用率 Prometheus 

 L2 应用链路追踪 请求耗时/P99延迟 Jaeger/SkyWalking 

 L3 业务指标关联分析 转化率/订单成功率 ELK+业务埋点 

 L4 智能根因分析 异常检测/自愈建议 Dynatrace/AIOps平台 

 

 日志采集最佳实践

yaml

 Filebeat配置示例(Kubernetes环境)

filebeat.inputs:

- type: container

  paths:

    - /var/log/containers/*.log

  processors:

  - add_kubernetes_metadata:

      host: ${NODE_NAME}

      matchers:

      - logs_path:

          logs_path: "/var/log/containers/"

 

 全链路监控架构

mermaid

sequenceDiagram

    participant User

    participant APIGW

    participant OrderService

    participant Prometheus

    participant Grafana

    

    User->>APIGW: 请求订单创建

    APIGW->>OrderService: 转发请求

    OrderService->>DB: 查询库存

    DB-->>OrderService: 返回库存数据

    OrderService->>Prometheus: 上报指标

    Prometheus->>Grafana: 数据可视化

    Note right of OrderService: 异常触发Alertmanager告警

 

 阿里云SRE实践

- 异常检测:基于时序数据库的ARIMA预测模型

- 根因分析:调用链拓扑+资源水位关联分析

- 自愈体系:预设异常模式自动扩容/重启/降级

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值