-- 主库配置 CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; -- 从库启动复制 START SLAVE;效果:主库宕机时,从库自动切换为可读写状态,业务无感知。
CircuitBreakerConfig config = CircuitBreakerConfig.custom() .failureRateThreshold(50) // 失败率超过50%触发熔断 .waitDurationInOpenState(Duration.ofMillis(1000)) .build(); CircuitBreaker circuitBreaker = CircuitBreaker.of("paymentService", config); // 堆代码 duidaima.com // 调用支付服务 Supplier<String> supplier = () -> paymentService.call(); Supplier<String> decoratedSupplier = CircuitBreaker .decorateSupplier(circuitBreaker, supplier);效果:当支付服务失败率飙升时,自动熔断并返回降级结果(如“系统繁忙,稍后重试”)。
DefaultMQProducer producer = new DefaultMQProducer("seckill_producer"); producer.setNamesrvAddr("127.0.0.1:9876"); producer.start(); Message msg = new Message("seckill_topic", "订单数据".getBytes()); producer.send(msg);效果:将瞬时10万QPS的请求平滑处理为数据库可承受的2000 TPS。
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: order-service-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: order-service minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60效果:CPU利用率超过60%时自动扩容,低于30%时自动缩容。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo spec: hosts: - bookinfo.com http: - route: - destination: host: reviews subset: v1 weight: 90 # 90%流量走老版本 - destination: host: reviews subset: v2 weight: 10 # 10%流量走新版本效果:新版本异常时,仅影响10%的用户,快速回滚无压力。
@ApolloConfig private Config config; public ProductDetail getDetail(String productId) { if(config.getBooleanProperty("recommend.switch", true)) { // 调用推荐服务 } // 返回基础商品信息 }效果:关闭推荐服务后,详情页响应时间恢复至200ms以内。
sharding: tables: user: actualDataNodes: ds_${0..1}.user_${0..15} tableStrategy: standard: shardingColumn: user_id preciseAlgorithmClassName: HashModShardingAlgorithm preciseAlgorithmType: HASH_MOD shardingCount: 16效果:10亿数据分散到16个物理表,查询性能提升20倍。
# 模拟网络延迟 blade create network delay --time 3000 --interface eth0 # 模拟数据库节点宕机 blade create docker kill --container-id mysql-node-1效果:提前发现缓存穿透导致DB负载过高的问题,优化缓存击穿防护策略。
.数据驱动的优化才是王道(全链路压测+立体监控)