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

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% 

 

 

相关文章:

  • PDF24 Tools:涵盖20+种PDF工具,简单高效PDF工具箱,支持一键编辑/转换/合并
  • 【论文阅读26】贝叶斯-滑坡预测-不确定性
  • 当算力遇上堵车:AI如何让城市血管不再“血栓”?
  • 范围for 和 万能引用
  • 8.进程概念(四)
  • 【java WEB】恢复补充说明
  • 权限提升—Linux提权内核溢出漏洞辅助项目
  • 《AIStarter安装部署全攻略:AI绘画/数字人项目快速上手指南(含Windows环境配置要点)》
  • python库文件查找详解
  • (33)VTK C++开发示例 ---图片转3D
  • 系统思考:企业效率提升关键
  • TensorRt10学习第一章
  • 数据结构-树(二叉树、红黑、B、B+等)
  • Sentry 异常捕获
  • 【数据分享】2020年中国高精度森林覆盖数据集(免费获取)
  • QMK机械键盘固件开发指南:从源码到实践
  • ffmpeg 元数据
  • Python 常用内置函数详解(七):dir()函数——获取当前本地作用域中的名称列表或对象的有效属性列表
  • stm32数码管显示数字/循环
  • 【Redis】Another Redis Desktop Manager 安装指南
  • 刘洪洁已任六安市委副书记、市政府党组书记
  • 旭辉控股集团:去年收入477.89亿元,长远计划逐步向轻资产业务模式转型
  • 中国固体火箭发动机领域杰出专家赵殿礼逝世,享年92岁
  • 国家卫健委对近日肖某引发舆情问题开展调查
  • 上海国际咖啡文化节开幕,北外滩集结了超350个展位
  • “ChatGPT严选”横空出世了,“DeepSeek严选”还要等多久?