当前位置: 首页 > ds >正文

Java面试高频问题(31-33)

 

三十一、服务网格:东西向流量治理与故障注入

 

 服务网格架构分层

mermaid

graph BT

    subgraph Control Plane

        APilot --> BEnvoy Sidecar

        CMixer --> B

        DCitadel --> B

    end

    subgraph Data Plane

        B --> E服务A

        B --> F服务B

        B --> G服务C

    end

 

 核心能力矩阵

 功能维度 Istio实现方案 Linkerd方案 技术选型点 

 流量路由 VirtualService+DestinationRule ServiceProfile 细粒度权重控制 

 可观测性 Prometheus+Grafana+Jaeger Prometheus+TraceID 指标采集开销对比 

 安全通信 mTLS双向认证+RBAC 自动mTLS 证书轮转机制 

 故障注入 HTTPFaultInjection Chaos Mesh集成 灰度故障注入能力 

 

 流量染色与金丝雀发布

java

// Istio VirtualService配置示例

VirtualService userVs = new VirtualServiceBuilder()

    .withHost("user-service")

    .addHttpRoute(new HTTPRoute()

        .withMatch(new HTTPMatchRequest()

            .setHeaders(Collections.singletonMap("x-version", "v2")))

        .setRoute(Collections.singletonList(

            new HTTPRouteDestination()

            .setSubset("v2")

            .setWeight(30))))

    .addHttpRoute(new HTTPRoute()

        .setRoute(Collections.singletonList(

            new HTTPRouteDestination()

            .setSubset("v1")

            .setWeight(70))))

    .build();

 

 

 三十二、分布式事务:Saga模式与TCC模式对比

 

 Saga事务执行流程

mermaid

sequenceDiagram

    participant Order

    participant Inventory

    participant Payment

    

    Order->>Inventory: 预扣库存(Try)

    Inventory-->>Order: 库存锁定

    Order->>Payment: 预授权支付(Try)

    Payment-->>Order: 支付冻结

    Note right of Order: 正常流程提交

    Order->>Inventory: 提交库存

    Inventory-->>Order: 扣减完成

    Order->>Payment: 提交支付

    Payment-->>Order: 支付完成

    

    rect rgba(255,0,0,0.1)

    Note left of Order: 异常补偿流程

    Order->>Payment: 取消支付(Cancel)

    Payment-->>Order: 释放冻结

    Order->>Inventory: 回滚库存(Cancel)

    Inventory-->>Order: 库存恢复

    end

 

 Seata AT模式核心机制

java

@GlobalTransactional

public void createOrder(Order order) {

    // 本地事务

    inventoryDao.deductStock(order.getProductId());

    paymentDao.freezeBalance(order.getUserId(), order.getAmount());

    

    // 记录全局事务日志(TC协调)

    GlobalTransaction tx = GlobalTransactionManager.begin();

    BranchTransaction tx1 = BranchTransactionManager.register(

        "inventory", 

        "deductStock", 

        order.getId()

    );

    BranchTransaction tx2 = BranchTransactionManager.register(

        "payment", 

        "freezeBalance", 

        order.getId()

    );

}

 

 事务模式对比分析

 模式 数据一致性 补偿复杂度 适用场景 

 Saga 最终一致 高(需逆向操作) 长事务跨多个微服务 

 TCC 最终一致 中(需Try/Confirm/Cancel) 高并发强隔离场景 

 XA 强一致 低(数据库原生支持) 金融核心交易系统 

 

 

 三十三、混沌工程:故障注入策略与容错验证

 

混沌工程成熟度模型

mermaid

graph LR

    A稳定态假设 --> B故障注入

    B --> C故障传播分析

    C --> D自愈能力验证

    D --> E架构韧性优化

 

混沌实验设计模板

yaml

 ChaosBlade网络故障注入配置

apiVersion: chaosblade.io/v1alpha1

kind: ChaosBlade

metadata:

  name: network-latency

spec:

  experiments:

  - scope: pod

    target: network

    action: delay

    desc: "模拟服务间网络延迟"

    matchers:

    - name: names

      value:

      - "order-service-.*"

    - name: namespace

      value: "production"

    - name: delay

      value: "300ms"

    - name: correlation

      value: "100%"

 

 容错能力评估指标

 指标类别 监控项 健康阈值 

 故障检测速度 熔断触发时间 < 500ms 

 服务降级效果 错误率波动幅度 < 5% 

 自愈恢复能力 平均恢复时间(MTTR) < 30s 

 资源隔离性 跨服务错误传播率 0% 

 

 

http://www.xdnf.cn/news/3562.html

相关文章:

  • Selenium3自动化测试,Python3测试开发教程视频测试用例设计
  • 2025年渗透测试面试题总结-拷打题库30(题目+回答)
  • 【算法扩展】斐波那契查找算法 - JAVA
  • Python地图绘制模块cartopy入门
  • 跨境电商物流革命:俄罗斯市场8000节点布局深度解析与卖家实战策略
  • Learning vtkjs之OBBTree
  • 油气地震资料数据中“照明”的含义
  • 2024 网络安全回顾与 2025 展望:守护数字世界的新征程
  • 2025五一杯数学建模竞赛C题 社交媒体用户分析 保姆级教程讲解|模型讲解
  • 【Leetcode 每日一题】2071. 你可以安排的最多任务数目
  • 【瑞萨RA4L1-SENSOR套件测评】LCD 自定义数字显示
  • Adam(Adaptive Moment Estimation)
  • windows电脑端SSH连接开termux的安卓端
  • 字符串格式漏洞-[第五空间2019 决赛]PWN5
  • 【 Node.js】 Node.js安装
  • 【无标题】linux的多进程讲解
  • C#中的LINQ:简化数据查询与操作
  • 梳理顶会论文相关的经验贴
  • Linux Shell 重定向与管道符号(>, >>, |)的实现机制
  • GD32F407单片机开发入门(二十五)HC-SR04超声波模块测距实战含源码
  • epoll函数
  • Perforated Backpropagation:神经网络优化的创新技术及PyTorch使用指南
  • TensorFlow深度学习实战——基于循环神经网络的情感分析模型
  • 多模态大语言模型arxiv论文略读(五十二)
  • LangChain4j +DeepSeek大模型应用开发——6 提示词
  • Nginx 核心功能02
  • 小米首个推理大模型开源——Xiaomi MiMo,为推理而战!
  • 体系学习1:C语言与指针1——预定义、进制打印、传参为数组
  • python多进程的使用
  • 机器视觉开发-摄像头扫描二维码