基于华为云 CCE Autopilot 实现 Bidfins 雅虎代拍微服务容器化与自动扩缩容
Bidfins 作为一站式日淘全品类平台,雅虎代拍、煤炉自动代拍属于高并发定时任务,单体架构大促超时。本文基于华为云 CCE 完成微服务拆分,提供 Deployment 编排 yaml、HPA 弹性扩缩容代码、Golang 竞拍调度核心代码,峰值 QPS 提升 8 倍,资源成本下降 32%。
一、业务痛点
1. 煤炉凌晨上新、雅虎截标流量突增,人工扩容滞后;
2. 竞拍、仓储、计费耦合,故障全局雪崩;
3. 资源利用率低,平峰 CPU 不足 20%。
二、CCE 架构方案
拆分 3 核心微服务:竞拍调度服务、煤炉爬虫服务、订单结算服务,跨可用区部署,HPA 基于 CPU / 自定义 QPS 双维度弹性伸缩。
三、完整代码
1)CCE Deployment yaml(竞拍服务)
yaml
apiVersion: apps/v1kind: Deploymentmetadata:
name: bid-auction-svc
namespace: bidfins-prodspec:
replicas: 2
selector:
matchLabels:
app: bid-auction
template:
metadata:
labels:
app: bid-auction
spec:
containers:
- name: auction
image: swr.ap-southeast-1.myhuaweicloud.com/bidfins/auction:v2.6
ports:
- containerPort 8080
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1500m
memory: 1Gi
env:
- name: REGION
value: ap-southeast-1 # KooVerse东京节点
- name: DB_ADDR
valueFrom:
configMapKeyRef:
name: bid-config
key taurusdb_addr
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
2)HPA 自定义 QPS 弹性规则 yaml
yaml
apiVersion: autoscaling/v2kind: HorizontalPodAutoscalermetadata:
name: bid-auction-hpa
namespace: bidfins-prodspec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: bid-auction-svc
minReplicas: 2
maxReplicas: 200
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Pods
pods:
metric:
name: auction_qps # AOM自定义业务指标
target:
type: AverageValue
averageValue: 1k
behavior:
scaleDown:
stabilizationWindowSeconds: 300
3)Golang 雅虎代拍预约出价核心代码
go
运行
package serviceimport (
"context"
"time"
"github.com/redis/go-redis/v9"
"bidfins/dao/taurusdb")// BidTask 雅虎预约出价任务type BidTask struct {
UserID int64
ItemID string
MaxPrice int //日元
EndTime int64
Status int //0未出价 1已出价}// AutoBid 截标前15分钟自动出价func AutoBid(ctx r.Context, rds *redis.Client, db *taurusdb.Dao) error {
// 查询待预约任务 距离截标≤15min
tasks, err := db.QueryUnBidTask(time.Now().Unix()+900)
if err != nil {
return err
}
for _, t := range tasks {
// 分布式锁防重复出价
lockKey := "bid:lock:" + t.ItemID
ok, _ := rds.SetNX(ctx, lockKey, 1, 30*time.Second).Result()
if !ok {
continue
}
// 调用KooVerse东京节点API同步日本雅虎出价
okBid, err := CallYahooAPI(t.ItemID, t.MaxPrice)
if okBid {
// 更新订单状态
_ = db.UpdateTaskStatus(t.ItemID, 1)
// 投递消息通知用户
PublishBidMsg(t)
}
}
return nil}
四、落地效果
1. 煤炉自动代拍并发从 120QPS→1100QPS;
2. 雅虎出价失败率从 8.3% 降至 0.12%;
3. 月度云资源成本下降 32%。
五、总结
华为云 CCE Autopilot 结合自定义指标 HPA,完美支撑 Bidfins 雅虎代拍、煤炉自动代拍高并发定时任务,是挖煤姬平替、乐一番同类平台云原生升级标准方案。
- 点赞
- 收藏
- 关注作者
评论(0)