好坑,流水号重复竟然导致了一次生产事故! 大家好,我是君哥。 最近我负责的系统出了一次生产事故,这次事故竟然是因为流水号重复导致的。今天来给大家分享一下。 1.问题背景 这个流水号的使用场景是上游系统调用下游接口时传入一个唯一 ID,流水号这个参数在联调或定位问题时很方便。 我们系统中的流水号是一个 32 位的字符串,为了能让上下游系统联动,下游系统接到上游传过来的这个 ID 后,会取前 23 位,再自己拼接剩下 9 位,传到自己要调用的 开发运维 2024-06-04 醒在深海的猫
亿级流量下通用的高并发架构设计 高并发架构设计的要点 高并发意味着系统要应对海量请求。从笔者多年的面试经验来看,很多面试者在面对“什么是高并发架构”的问题时,往往会粗略地认为一个系统的设计是否满足高并发架构,就是看这个系统是否可以应对海量请求。 再细问具体的细节时,回答往往显得模棱两可,比如每秒多少个请求才是高并发请求、系统的性能表现如何、系统的可用性表现如何,等等。 为了可以清晰地评判一个系统的设计是否满足高并发架构,在正式给 开发运维 2024-05-27 向阳逐梦
数据并发是什么意思? 为了更好地提高事务的处理能力,数据库允许用户通过事务并发地访问与修改同一个数据,我们需要为这种数据并发性 数据并发是什么意思呢?数据并发是指在数据处理或计算机系统中,为了更好地提高事务的处理能力,在系统中多个任务或操作同时发生或相互交织的现象。。在数据库、操作系统、编程等领域中,数据并发是一个核心概念,其涉及如何有效地管理和协调多个并发执行的单元,以确保系统的正确性和性能。 下面的内容概念整体不对 数据运维 2024-05-27 共饮一杯
领域化、中台化和多Region化,携程账号系统演进之路 作者简介 Scai,携程高级研发经理,多年深耕于账号中台,持续推进中台的技术架构演进及性能优化。 一、前言 在互联网早期时代,账号系统的功能非常广泛,包括账号管理、登录认证相关能力以及维护各类用户信息,比如头像、昵称、积分、等级等。随着业务的发展,每个功能逐渐分化出自己的需求和架构侧重点,独立出各自的领域服务也成了业界共识。 本文分享的账号系统,指的是提供用户账号管理、登录认证相关能力的系统。介绍 开发运维 2024-05-23 大猫
请求合并的三种技巧,性能起飞! 将相似或重复请求在上游系统中合并后发往下游系统,可以大大降低下游系统的负载,提升系统整体吞吐率。文章介绍了 hystrix collapser、ConcurrentHashMultiset、自实现BatchCollapser 三种请求合并技术,并通过其具体实现对比各自适用的场景。 前言 工作中,我们常见的请求模型都是”请求-应答”式,即一次请求中,服务给请求分配一个独立的线程,一块独立的内存空间, 开发运维 2024-05-20 LOVEHL^ˇ^
MQ消息积压,把我整吐血了 前言 我之前在一家餐饮公司待过两年,每天中午和晚上用餐高峰期,系统的并发量不容小觑。为了保险起见,公司规定各部门都要在吃饭的时间轮流值班,防止出现线上问题时能够及时处理。 我当时在后厨显示系统团队,该系统属于订单的下游业务。 用户点完菜下单后,订单系统会通过发kafka消息给我们系统,系统读取消息后,做业务逻辑处理,持久化订单和菜品数据,然后展示到划菜客户端。 这样厨师就知道哪个订单要做哪些菜,有 开发运维 2024-05-14 张二河
基于Napi调用ArkTS/系统接口 想了解更多关于开源的内容,请访问: 51CTO 鸿蒙开发者社区 https://ost.51cto.com 场景描述: app应用在native侧调用 系统库/arkts模块的方法。 应用经常会遇到如下的业务诉求: 场景一:系统提供了ArkTS 接口,但未提供对应的NDK接口,当伙伴使用C++ 代码实现业务逻辑时,部分系统能力需要依赖系统ArkTS接口。 场景二:系统仅提供了ArkTS 异步接口, 开发运维 2024-05-10 三掌柜
C++技术中的调试:嵌入式系统中的独特挑战 嵌入式系统中的 c++++ 调试面临独特的挑战:访问受限、内存约束和实时性要求。最佳实践包括:使用调试器(如 gdb)设置断点,检查变量和跟踪执行。集成在线跟踪工具(如 tracealyzer)以监视变量和寄存器,调试实时系统或存在并发问题的系统。利用静态分析、内存调试器和调试断言来检测和解决内存问题。 C++ 技术中的调试:嵌入式系统中的独特挑战 前言 在嵌入式系统中,调试可能是具有挑战性的任务 开发运维 2024-05-07 Escape
OceanBase 在江西人社养老统筹系统的实践分享 基本养老保险全国统筹改革,是党和国家为建立健全更加公平、更可持续社会保障体系实施的重大战略决策。2020 年 2 月 14 日,中央全面深化改革委员会审议通过了改革方案。同年,人社部提出通过三年时间完成全国统筹系统建设,作为保障全国统筹制度顺利实施的基础性工程。全国统筹系统的最大创新,是在保证中央、地方权责不变,充分尊重各地实际业务开展情况的基础上,采用“省级集中+部下发中台”模式,把物理分散、彼 数据运维 2024-05-07 宇宙之一粟
基于 RocketMQ Connect 构建数据流转处理平台 导读:为什么在“双11”抢红包活动及大型数据系统中总是出现 RocketMQ 的身影? RocketMQ Connect在RocketMQ生态中扮演什么角色?本文根据Apache RocketMQ Committer周波的演讲整理,为大家解决上述疑问。同时,介绍 OceanBase 与 RocketMQ 如何集成以及能帮助大家解决哪些问题。 从问题中来的RocketMQ Connect 在电商系统 数据运维 2024-05-07 LOVEHL^ˇ^
系统变量源码介绍 任何讲述不太准确的地方,各位请指出。下面就开始介绍一下如何新增一个变量和如何使用它 系统变量(variables) 生效范围:global(租户隔离)/session(会话级隔离) 例子: ob_query_timeout 用于设置对SQL语句进行DML操作的超时时间,单位是微秒。 由于变量本身涉及到众多的工程文件,为了避免增加变量这一操作对软件构成其他威胁,因此针对大多数开发人员,oceanba 数据运维 2024-05-07 大白菜程序猿
什么是系统变量?如何使用系统变量? 上一篇博客介绍了配置项的概念和基本用法,配置项能够控制集群或租户的行为方式。而在使用 OceanBase 的过程中,有时候我们只希望改变当前会话的某些行为,关闭会话连接不影响后续使用,这就要用到“系统变量”。 系统变量和配置项有一些相似之处,但是生效范围和实现方式却有所差异。本期博客将会介绍“系统变量”的概念和用法,帮助大家理解和使用“系统变量”。 什么是系统变量? 变量(variable)的概念 数据运维 2024-05-07 泡泡
OceanBase 异地多活架构方案技术解读 随着数字化转型不断深入,各行业的数据体量和并发访问呈现指数级的增长,关键业务对数据中心甚至城市级别的容灾能力提出了更高要求。传统IT系统高可用系统的实现主要是以主备的方式进行部署, 这种方案有着非常广泛的应用和长时间的验证,但仍然无法很好解决例如故障发生后切换数据不丢失的需求,同时由于异步复制机制问题,主中心故障发生后不敢切、不能切的情况时有发生。故障切换的决策成本高,业务影响时间进一步被拉长。 数据运维 2024-05-07 大猫
OceanBase 并行执行学习笔记 6 —— 并行执行诊断及调优技巧 诊断并行执行问题,可以从两个大的方面入手。首先从系统整体上判断,比如确认网络、磁盘 IO、CPU 是不是被打满;然后从具体 SQL 着手,找到问题 SQL 在哪里,它的内部状态如何。 并行执行系列的内容分为以下七篇博客,本篇是其中的第六篇。 第一篇 并行执行概念 第二篇 设定并行度 第三篇 并发控制与排队 第四篇 并行执行分类 第五篇 并行执行控制参数 第六篇 并行执行诊断及调优技巧 第七篇 并行 数据运维 2024-05-07 剑圣无痕
如何新增系统变量? 本专题的前几篇文章已经介绍过配置项和系统变量的基本用法,也对配置项的源码进行了解析,一些同学可能还想知道系统变量是如何实现的,以及想跟配置项一样自定义一个新的系统变量。 本文将通过探究“如何新增系统变量”这一问题,结合系统变量的源码实现,讲解系统变量的定义、初始化、内部访问和同步机制。 如何新增系统变量? 一个系统变量可以同时具有 global 级别和 session 级别的数据,在代码中存在多个 数据运维 2024-05-07 大树
16 个在面试前需要知道的系统设计概念 要在关于系统设计的面试中脱颖而出,最关键的方面之一是深入理解基本的系统设计概念,例如,负载平衡、缓存、分区、复制、数据库和代理。 根据我自己的经验,我确定了 16 个关键概念,它们可以帮助你提高解决系统设计问题的能力。 这些概念的范围从理解 API 网关的复杂性和掌握负载平衡技术到掌握 CDN 的重要性和理解缓存在现代分布式系统中的作用。阅读完本文时,你将全面了解这些基本思想,并有信心在下一次面试 开发运维 2024-05-06 张二河
C#中编写系统操作日志的实践 系统操作日志在软件开发和运维过程中起着至关重要的作用。通过记录系统在运行时的关键操作和事件,操作日志能帮助开发者监控系统状态、诊断问题、追踪错误,并为系统的安全性和稳定性提供保障。在C#中,我们可以利用多种方法来编写系统操作日志,本文将详细介绍这一过程,并提供实用的示例代码。 一、系统操作日志的重要性 系统操作日志记录了软件或系统在运行时的各种活动,包括但不限于用户登录、数据修改、异常发生等关键事 开发运维 2024-04-25 贤蛋大眼萌
突破数据存储瓶颈!转转业财系统亿级数据存储优化实践 1.背景 1.1 现状 目前转转业财系统接收了上游各个业务系统(例如:订单、oms、支付、售后等系统)的数据,并将其转换为财务数据,最终输出财务相关报表和指标数据,帮助公司有效地进行财务管理和决策。 转转业财系统于2021年开始构建,前期为了满足需求短时间内上线,选择了主动接收上游业务系统的数据。然而随着时间的推移,数据量在不断增长,系统已经达到无法承载的边缘,引发了许多问题。因此,我们需要对数据 数据运维 2024-04-18 剑圣无痕
聊聊架构设计流程:识别复杂度 架构设计第 1 步:识别复杂度 在设计软件架构的过程中,识别并理解系统的复杂性是至关重要的一步。这是因为,只有当我们准确地分析出系统面临的主要复杂性时,才能确保架构设计方案的正确性。如果分析失误,无论设计方案多么高级,都可能偏离解决实际问题的正确路径,导致效果不佳。 考虑一个例子:假设一个系统主要的复杂性来源于其业务逻辑的复杂和功能之间的紧密耦合。如果在这种情况下,架构师设计了一个以高吞吐量(TP 开发运维 2024-04-16 泡泡
PHP函数在嵌入式系统中的应用 php 函数在嵌入式系统中可发挥重要作用,因为它高效、内建函数库丰富且易用。以下是在嵌入式系统中特别有用的 php 内置函数:读取文件内容:file_get_contents()写入文件内容:file_put_contents()拆分字符串:explode()连接数组:implode()替换子字符串:str_replace()检查元素是否存在:in_array()生成随机数:rand()获取 un 开发运维 2024-04-14 泡泡