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

双十一备战与复盘

如何组织备战

重要节点

从大促启动会开始后我就开始计划我们本次备战的整体节奏。

挑战在哪

以上内容介绍了CDP平台有多么重要,那么画像系统备战的核心挑战在“如何保障在大流量高并发情况下系统稳定提供高性能服务”,主要表现在:稳定性、性能两项上。

稳定性:

1.在系统遇到紧急情况时,如何容灾快速恢复。

2.在大流量情况下,如何做好系统的流量管控,保障系统的可用。

性能:在大数据量近百万级TPS流量下如何保障系统性能(TP999:50ms以下)。

流量:黄金流程最底层环节,预估流量会被放大,整体流量备战预估到98wTPS

其实观察我们每天日常的流量就会发现,每天我们都在进行“大促”,并且日常也会存在流量激增。

我如何“操盘”

系统梳理

这一阶段主要是梳理参加大促的核心应用,我觉得最重要的一点就是梳理出来618之后都有哪些变化?因为系统总是在不断的迭代升级,一是要确保这些变化项不会影响系统的性能,二是如果有不能按照之前大促的经验评估的新的备战接口要重点去做流量收集。梳理出系统后就要进行单机压测根据压测的结果评估性能是否达标,也是对这半年的迭代交一份答卷。最后还要根据压测结果配置JSF单机限流(前置单机接口层)——稳定性保障

容量规划

我针对容量规划主要分为两个方面,一是重新进行应用的单机压测明确我们目前单机的承载量最大是多少,二是收集上下游业务方的流量,根据这两个方面进行评估算出这次大促要扩容多少资源。在根据收集上来的业务方流量提报进行应用限流,目的是保证大部分流量可控)——稳定性保障

容灾备案

梳理出所有的系统降级预案,系统核心节点灾备做到一键切换,明确操作手册,快速操作——稳定性保障

降级预案

让你的系统“坚挺不到”的最后一个大招——降级,我用一句话来概括就是将有限的资源最大化。比如我们的系统在峰值点就会暂停群体、标签的加工,也会暂停上游非重保的MQ作业,就是为了腾出更多资源给核心程序使用,以最大化保证核心业务的可用性。

军演压测

在这个阶段集团会组织多次的线上集群统一压测,(在这期间进行所有的降级演练、确保所有的降级开关可用)——稳定性保障

实时监控

重新梳理并配置系统关键链路的报警配置(电话、咚咚报警),并且我还会安排专人备战系统各个核心服务,专人专服,提升处置效率。

“惊悚时刻”

11.4日13:51分接到报警电话。

11.4日13:52分查看命中接口SGM的tp999激增,同时我马上给R2M运维老师打电话沟通得知原因。

11.4日13:53分我快速操作系统的灾备开关将系统切换到备链路,在这里我给大家的建议就是一定不要犹豫,不要上来就一直追查原因快速的做出反应和判断,最小化的减少对线上用户的影响。

以下这张图可以看到在两分钟内系统就恢复了正常

在大促期间的稳定性保障一般属于应急策略,因为在前期梳理系统时我详细的梳理了系统的降级预案明确操作手册,系统核心节点也有灾备能力并且在集团组织压测阶段也进行了降级演练,所以在出现问题时我们快速操作降级,在最短时间内解决了接口的性能问题。

总结与感悟

备战2023京东11.11是一次非常宝贵的学习和成长机会。

1.在这次备战初期梳理阶段,我学到了很多专业知识,也锻炼了自己的团队协作和问题解决能力。尤其在梳理系统架构变化点阶段能从各个角度(稳定、成本、运维)来了解为什么会这样变化。

2. 在大促当天大家都会在会议室里集中备战,我确实很紧张,但是我会组织大家再一次巡检所有的系统,核对降级列表、对其他系统的限流配置。对于我来说在晚上8点前后10分钟这个时间段是度过的最慢的并且也是最最最紧张的时候。 在这20分钟里,我要进行通知用户降级、操作系统降级、观测线上系统监控、恢复降级,并且要列张表格让团队每位小伙伴都有专门的监控项确保实时保障系统的稳定性。

3.最后当系统在峰值点运行正常,并顺利应对高并发压力时,我也会感受到巨大的成就感和满足感。大促确实很累,需要准备2个月左右的时间,大促期间还要有好几天到后半夜甚至通宵。但从某种角度上来讲大促更像是一次技术大考,一次全体人员的节日,未经历过是无法体会的,不经历多次是无法全面了解的,所以尽情享受吧。

作者:京东云开发者
链接:https://juejin.cn/post/7302605813206155290
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章:

双十一备战与复盘

如何组织备战 重要节点 从大促启动会开始后我就开始计划我们本次备战的整体节奏。 挑战在哪 以上内容介绍了CDP平台有多么重要,那么画像系统备战的核心挑战在“如何保障在大流量高并发情况下系统稳定提供高性能服务”,主要表现在:稳定性、…...

ONNX实践系列-修改yolov5-seg的proto分支输出shape

一、目标 本文主要介绍要将原始yolov5分割的输出掩膜从[b,c,h,.w]修改为[b, h, w, c] 原来的: 目标的: 代码如下: Descripttion: version: @Company: WT-XM Author: yang jinyi Date: 2023-09-08 11:26:28 LastEditors: yang jinyi LastEditTime: 2023-09-08 11:48:01 …...

VMware与Linux安装

VM与Linux安装 1、安装VMware ​ 这里安装Vm主要是为了安装Linux系统,除了相对云服务器,比较大众化的操作,当然更多的是熟悉Linux操作 1、Windows安装 ​ (1) 下载链接,目前版本上下载VM15的版本即可https://www.vmware.com/p…...

服务器连接github

https://zhuanlan.zhihu.com/p/543490354 比着这个一步步做就行。 https://blog.l0v0.com/posts/94ffdbdf.html 上传文件可以看这个 注意: 密钥ssh-keygen设置好之后,以后就不用每次输入账号密码才能访问了。 otherwise,每次要输入账号密码。…...

自动驾驶中的LFM(LED 闪烁缓解)问题

自动驾驶中的LFM Reference: 自动驾驶系统如何跨越LFM这道坎? 从路灯、交通灯,到车载照明,低功耗、长寿命、高可靠的 LED 正在快速取代传统照明方式。但 LED 在道路上的普遍使用,却带来“LED闪烁”现象。“LED闪烁”是由 LED 驱…...

ArkTS-页面和自定义组件生命周期

页面生命周期:被Entry装饰的组件生命周期 onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入前后台等场景onBackPress:当用户…...

ELK: logstash gork filter 多个模式(pattern)匹配规则语法和多行日志匹配设置

项目里用logstash分析日志,由于有多种模式(pattern)需要匹配,网上搜了很多示例,发现这些都是老的写法,都会报错,后来查阅了官方文档,才发现,新版本只支持新语法。 错误的…...

Ubuntu20.04上编译安装TVM

本文主要讲述如何在ubuntu20.04平台上编译TVM代码并在python中import tvm成功。 源代码下载: git clone --recursive https://github.com/apache/tvm tvm 平台环境升级: 1) sudo apt-get update 2) sudo apt-get install -y pyth…...

伦敦金现图形态分析(深度好文)

对价格行为交易者来说,伦敦金价走势图表中的一些特殊形态,能够带来比较靠谱的交易信号。然而交易并不只和形态有关,也和我们能够从图表形态中阅读到什么,以及如何理解其他交易者对价格波动的推动有关。 在对伦敦金走势图的技术形态…...

慕尼黑电子展采访全程 | Samtec管理层对话电子发烧友:虎家卓越服务

【摘要/前言】 今年的慕尼黑上海电子展上,Samtec大放异彩,特装展台一亮相就获得了大家的广泛关注,展台观众络绎不绝。 作为深耕连接器行业数十年的知名厂商以及Electronica的常客,Samtec毫无疑问地获得了大量媒体朋友的关注和报…...

APP外包项目维护方案

APP项目维护是确保应用程序持续运行、安全性和性能不断优化的关键活动。以下是一个综合的APP项目维护方案,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.定期性能监控和优化: 使用性能…...

leetcode面试经典150题——32 串联所有单词的子串(中等+困难)

题目: 串联所有单词的子串(1中等) 描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串&…...

oracle关联更新

业务场景中需要对特定数据进行关联更新,记录一下关联更新语法: MERGE INTO fine_record_execute targ USING (SELECT "id","tname"FROM fine_record_executeWHERE "username" LIKE %目标人物%AND "time">20…...

SWT技巧

实现控件的刷新 问题可以简化如下,点击上方按钮,使下方按钮移动,但要求在监听事件里新建按钮对象,而不是使用原来的按钮(原来的按钮被移除了)。 解决代码如下: public class TestUI {protecte…...

3.数据结构

3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 3.1.1逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照…...

一篇文章完成Hbase入门

文章目录 一、简介1、数据模型结构2、物理存储结构3、数据模型4、基本架构 二、安装1、下载解压安装包2、修改配置文件3、启动服务(单机、集群)4、配置高可用(HA) 三、命令行操作1、建表2、新增/更新数据3、查看表数据4、删除数据5、修改默认保存的数据版本 四、架构1、RegionS…...

​使用PotPlayer播放器查看软解和硬解4K高清视频时的CPU及GPU占用情况​

目录 1、问题说明 2、PotPlayer播放器介绍 3、视频的软解与硬解 4、使用PotPlayer查看4K高清视频软解和硬解时的CPU占用情况 4.1、使用软解时CPU和GPU占用情况 4.2、使用硬解时CPU和GPU占用情况 5、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅…...

怎么做excel表格的二维码?文件快速做二维码的教程

Excel表格怎么做成二维码来扫码插看呢?Excel是工作中常用的一种文件格式,想要将表格内容分享给其他人查看,那么将表格生成二维码的方法会更加的方便快捷,其他人只需要扫描二维码就可以查看或者下载文件。表格excel二维码可以通过文…...

Clion取消double shift(按两下shift键)全局搜索

Clion 取消 double shift(按两下 shift 键)全局搜索。 如下图所示打开 setting。 点击 advanced setting,搜索 disable,取消勾选左侧复选框,点击 ok。...

Spring RabbitMQ那些事(2-两种方式实现延时消息订阅)

目录 一、序言二、死信交换机和消息TTL实现延迟消息1、死信队列介绍2、代码示例(1) 死信交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 三、延迟消息交换机实现延迟消息1、安装延时消息插件2、代码示例(1) 延时消息交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 …...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

django filter 统计数量 按属性去重

在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...