- 博客(233)
- 收藏
- 关注
原创 深入理解InnoDB底层原理:从数据结构到逻辑架构
InnoDB是MySQL中最常用的存储引擎之一,它提供了高性能、事务安全以及外键等特性。InnoDB的设计目标是高效处理大量数据和高并发访问,同时保证数据的一致性和可靠性。通过上述两种解题思路,我们可以更好地理解InnoDB的底层数据结构和逻辑结构。B+树索引提供了高效的查询性能,而缓冲池则通过减少磁盘I/O进一步提升了系统的响应速度。这两种方法都是InnoDB存储引擎的核心组成部分,对于理解和优化数据库性能至关重要。
2024-10-22 15:40:49
1188
原创 MAVEN:Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (default-cli) on project
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (default-cli) on project莫名其妙的问题
2024-10-22 05:00:00
454
原创 《大厂算法冲锋:有效括号序列,面试轻松过》
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。我们可以利用栈来跟踪每一个开括号。
2024-10-21 01:30:00
353
原创 《大厂算法冲锋:Java实现最小栈,轻松应对互联网大厂算法挑战》
题目要求我们定义一种特殊的栈,除了基本的push、pop、top操作外,还能够快速获取当前栈中的最小元素。这意味着我们需要在保持栈的基本特性的基础上,额外添加对最小值追踪的功能。
2024-10-21 01:00:00
21
原创 如何完美解决 Nginx出现 404 Not Found nginx/1.23.4 解决方案?
在Nginx配置过程中,404 Not Found错误是一个常见问题。本文将详细解析Nginx 404 Not Found的原因及解决方案,确保您能够轻松解决这一问题。通过本篇文章,您将了解Nginx配置的细节,掌握快速定位和修复404错误的方法,提升服务器的稳定性和用户体验。
2024-10-19 07:30:00
1269
原创 百度一面算法:括号匹配问题
本文详细介绍了如何判断一个只包含的字符串是否有效,并提供了一种高效的解法:使用栈。通过这种方法,我们可以轻松地解决括号匹配问题,并确保字符串的有效性。希望这篇文章能帮助你更好地理解和应对括号匹配问题,祝你在面试中取得好成绩!👏👏👏乐于分享和输出干货的Java技术公众号:JavaPersons。
2024-10-19 03:00:00
1782
原创 架构思维:使用以解决方案为中心的方式来处理产品开发中的复杂性
让我向您展示 Haesun Moon 对话方向象限 (DOQ) 的图片,以简要解释解决方案焦点对我意味着什么。当我们交谈时,我们可以通过多种方式谈论话题或提出问题。解决方案重点发生在“足智多谋的过去”和“首选的未来”象限。问题焦点出现在“麻烦的过去”和“可怕的未来”象限中。让我们一起探讨基于 DOQ 的软件现代化示例的潜在问题。如果您戴上用户的眼镜,以下问题的答案是什么?过去的烦恼:为什么比以前更糟糕?是什么让你生气?可怕的未来:什么会让事情变得更糟?底部象限的问题的答案可能没有多大帮助。
2024-10-18 06:45:00
1635
原创 物联网协议:MQTT、CoAP 和 LwM2M 的比较与应用
物联网协议是用于在物联网设备之间进行通信的一组规则和标准。不同的协议适用于不同的场景和需求。: 一种轻量级的消息传输协议,适用于低带宽、高延迟或不可靠网络环境。: 一种基于 UDP 的应用层协议,适用于资源受限的设备。: 一种专门设计用于管理 IoT 设备的标准协议,提供了设备管理和安全功能。
2024-10-18 03:00:00
1958
原创 阿里面试官:讲讲七层网络模型与TCP三次握手与四次断开?
目前,很多面试场景都开始重视基础知识的考察,比如:操作系统、IO(BIO、NIO、AIO)、网络、数据结构和算法等等。这不,就有小伙伴被面试官问到了网络的七层模型和TCP三次握手与四次断开的问题。
2024-10-17 06:00:00
1187
原创 网络七层架构
大学“计算机网络”课程,之前都是用这个七层模型,新版教程用TCP/IP五层模型,这两个模型之间有一个对应关系如下:可以看到,四层是指传输层,七层是指应用层。更具体的,对应到nginx反向代理hash:四层:根据用户ip+port来做hash、七层:根据http协议中的某些属性来做hash。
2024-10-17 05:00:00
1478
原创 阿里面试:订单超时怎么处理?我们用这种方案
如果对于超时精度比较高,超时时间在 24 小时内,且不会有峰值压力的场景,推荐使用 RocketMQ 的定时消息解决方案。在电商业务下,许多订单超时场景都在 24 小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。
2024-10-16 09:00:00
745
原创 微服务之间的数据依赖问题,该如何解决?
这里我们探讨了服务间的数据依赖问题,并给出了目前较为合适的解决方案。其实这里提到的方案不是一个很大众的方案,肯定会存在一些遗漏的问题没考虑,如果你有更好的方案,欢迎留言讨论。乐于分享和输出干货的Java技术公众号:JavaPersons。
2024-10-16 05:00:00
1414
原创 架构师必备技能——机器配置与数量估算详解
首先,我们需要定义系统的性能指标。: 每秒查询次数。: 每秒事务处理数。响应时间 (Response Time): 系统响应用户请求的时间。并发数 (Concurrency): 同时处理的请求数。QPS: 10000平均响应时间: 100msSLA: 99.9% 的请求响应时间不超过 200ms在这篇文章中,我们详细讨论了如何作为架构师估算机器配置与数量。通过定义性能指标、进行压力测试和基准测试、以及容量规划,我们可以准确地估算出所需的服务器数量和配置。
2024-10-15 01:15:42
894
原创 《大厂算法冲锋:如何优雅地解决字母片段划分问题》
在互联网大厂的面试中,算法题目是必不可少的一环。今天我们要探讨的问题是一个有趣的字符串处理问题:将一个字符串划分为尽可能多的片段,使得每个字母最多出现在一个片段中。这个问题不仅考察了基本的数据结构与算法知识,还涉及到逻辑思维和编程技巧。本文将通过两种不同的方法来解决这个问题,并详细讲解每一步的实现过程。
2024-10-14 05:00:00
169
原创 《大厂算法冲锋:深入解析字符串解码算法》
在这篇文章中,我们讨论了如何解码一个经过特定规则编码的字符串。我们介绍了两种解法:一种是基于栈的方法,另一种是采用递归的方法。这两种方法各有优劣,但都能有效地解决问题。希望这篇文章能帮助你更好地理解和掌握这类问题的解题思路,为即将到来的互联网大厂面试做好准备。祝你好运!🌟
2024-10-14 04:00:00
107
原创 架构师必备核心能力:抽象能力
架构的核心是管理复杂度,架构师的核心能力是抽象能力。什么是抽象能力?抽象能力就是一种化繁为简的能力。何为化繁为简?就是把一种复杂的事情变得简单的能力,比如通过打比喻让别人很容易听明白你说的意思就是一种抽象能力。如何锻炼抽象能力?我觉得有三种方法:第一种是用归纳法找共性,从多个问题中找到共同的问题提炼通用解决方案,去其糟粕取其精华。第二种通过演绎法找关系,从多个问题中找关系,把多个问题串成一个问题,系统化解决问题!第三种是通过归纳法找特性。
2024-10-12 05:00:00
725
原创 惊了!架构从微服务转向单体应用,成本居然降低 90%
在这份关于 .NET 应用程序现代化的“AWS 规范指南”文档中,AWS公司列举了微服务的优势,包括更快的创新、高可用性和可靠性、更高的敏捷性和按需可扩展性、现代 CI/CD(持续集成和部署)管道以及强大的模块边,尽管它也将“操作复杂性”列为了缺点。产品的需求一部分作为监控工具,能够识别“客户查看的每个字符流”中的质量问题,因此需要具有高度可扩展性,因为存在“数千个并发流”,该团队最初创建了一个包含由 AWS Step Functions 编排的分布式组件的解决方案。微服务应该是最后的手段。
2024-10-12 05:00:00
1027
原创 功法修炼:十年架构感悟
大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师!🚀🌟 欢迎大家关注我的微信公众号【JavaPersons】!在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷于探索一些框架源码和算法技巧奥秘,还乐于分享这些宝贵的知识和经验。💡。
2024-10-11 07:00:00
753
原创 面试官问:如何在十亿级别用户中检查用户名是否存在
不知道大家有没有注意到,大部分的APP在注册的时候,会提示用户名、邮件或手机号已经被占用,需要更换一个。现在我们来逐一看一下各个实现方案的优缺点。Bloom Filter 是一种空间利用率极高的随机数据结构,它用一个位数组简洁地表示一个集合,并能判断某个元素是否属于这个集合。Bloom Filter 的这种高效是有一定代价的:在判断某个元素是否属于某个集合时,有可能把不属于该集合的元素误认为属于该集合(false positive)。因此 Bloom Filter 并不适合“零错误”的应用场景。
2024-10-11 06:00:00
1512
原创 进阶功法:Mysql存储引擎详解
存储数据,建立索引,更新/查询数据等技术的实现方式存储引擎是基于表的,而不是基于库的,所以不同表可以有不同的存储引擎,同时存储引擎也被称为表类型# 下面是一个表的创建语句~~~~~~~~# 在上面的engine = 存储引擎类型 就是存储引擎的设计语句# 我们默认情况下是InoDB存储引擎show create table 表名;InnoDB 是一种兼顾可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后成为 MySQL 的默认存储引擎。
2024-10-10 10:00:00
554
原创 进阶功法:SQL 优化指南
SQL 优化包括批量插入、手动提交事务、主键顺序插入和使用 LOAD DATA INFILE 提升插入性能;通过合理设计主键和索引,利用 ORDER BY 和 GROUP BY 的索引优化查询效率;使用 LIMIT 和子查询优化分页,选择合适的 COUNT 方法提高统计速度;更新操作时使用索引以避免表锁,提升并发性能。
2024-10-10 05:00:00
821
原创 解锁大厂面试:字符串全排列的Java实现与优化
通过上述两种方法,我们解决了字符串全排列的问题,特别是当字符串中包含重复字符时。回溯法直观易懂,但递归可能会导致较大的空间开销;字典序生成法则更加高效,适用于大规模数据处理。
2024-10-09 05:00:00
1492
原创 比特(bit)与字节(byte)单位换算
bit也就是我们不一定听说过的比特,大名鼎鼎的比特币就是以此命名的。需要了解的是,1 KB 并不是一千字节,因为计算机只认识二进制,所以在这里的 KB,是 2 的 10 次方,也就是 1024 个字节。英文字符通常是一个字节,也就是 1B,中文字符通常是两个字节,也就是 2B。
2024-10-09 03:00:00
847
原创 京东秒送LBS容灾数据备份实战(高性能+高可用)
京东秒送前台作为重要流量入口,其稳定性及容灾机制至关重要。本文将探讨构建LBS C端SOA服务容灾体系,包括数据备份策略,分析B2C与O2O模式下的容灾设计差异,探讨亿级数据的降本存储方法,并寻求成本、解决方案、用户体验间的最佳平衡,供读者参考与讨论。在面向服务的架构(SOA)系统中,容灾能力是保障系统稳定性的重要组成部分。通过引入多数据中心部署、自动化故障转移、数据备份等技术手段,可以有效提升系统在面对突发灾难事件时的恢复能力。
2024-10-08 07:00:00
1161
原创 Mysql数据库存储引擎有哪些? 区别是什么?
简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。下面重点关注InnoDB、MyISAM、MEMORY这三种。
2024-10-08 07:00:00
1305
原创 万字长文浅谈三高系统建设方法论和实践
整个软件的发展历程是一部软件复杂性对抗史,软件的复杂性分为技术复杂性和业务复杂性,业务复杂性主要是建模和抽象设计,技术复杂性主要是三高(高性能,高并发,高可用)的应对,C端的业务一般以技术复杂性为主,业务复杂性为辅,而B端或者M端的业务通常以业务复杂性为主,技术复杂性为辅。本篇文章主要是从后端研发的视角结合自己多年的B、C端系统建设实践谈下三高系统的建设方法论和实践,希望和大家相互交流,共同进步。软件的发展历程就像一场与复杂性对抗的持久战,这场战争主要围绕着两个主要的战场:技术复杂性和业务复杂性。
2024-10-07 05:00:00
1211
原创 《大厂算法冲锋:字符串大数乘法的精妙解法》
在准备互联网大厂的技术面试时,掌握一些常见的算法问题是非常重要的。今天我们将探讨一个经典的问题:如何将两个以字符串形式表示的非负整数相乘,并返回它们的乘积,同样以字符串形式表示。这个问题不仅考察了基本的数据类型转换能力,还涉及到了字符串处理、数学运算以及算法设计。通过这篇文章,你将学到两种高效的解决方案,并且能够深刻理解每一步背后的原理。
2024-10-07 03:00:00
229
原创 不只是前端,后端、产品和测试也需要了解的浏览器知识(二)
本文主要介绍了业务系统呈现给用户所经历的各个节点,以及作为技术人能在各节点中进行优化的点, 通过这些技术优化点,在研发过程中不断创新,推动产品性能、用户体验的提升,来实现业务的增长,创造可持续的价值。
2024-10-05 03:00:00
1114
原创 MySQL索引机制精讲
接触MySQL数据库的小伙伴一定避不开索引,索引的出现是为了提高数据查询的效率,就像书的目录一样。某一个SQL查询比较慢,你第一时间想到的就是“给某个字段加个索引吧”,那么索引是什么?是如何工作的呢?一起静下心来,耐心看完这篇文章吧,干货不啰嗦,相信你一定会有所收获。
2024-10-05 00:20:13
1096
原创 AI大模型快速生成题库-助力业务人效提升10+倍【实战落地,强烈推荐】
通过AI大模型帮助用户进行培训试题的生成,在一定程度上将用户从低效、低技术含量、大工作量中解放出来,是面向用户痛点的一次尝试。同时通过该场景将大模型的能力和业务场景及工程系统结合了起来,让用户得到感知,也便于后续更多的大模型实践场景的发掘和落地。该案例不仅用在航空领域,在其他诸多需要生成试题,生成问卷等相关场景方面都可进行参考和尝试。当前现在试题生成能力也仅是实现在从0到1的落地建设,能力需要不断的打磨和完善,后续会逐步进行1到100,100到∞的升级。
2024-10-04 06:00:00
1303
原创 不只是前端,后端、产品和测试也需要了解的浏览器知识(一)
本篇文章主要介绍一下作为研发了解浏览器的必要性, 以及浏览器的基本情况和整体的发展。在考虑产品定位时(开发出一款什么样的目标产品),我们需要对浏览器有一定的了解,整篇文章对研发和产品皆有一定的参考意义。
2024-10-04 03:30:00
1219
原创 Proxyless的多活流量和微服务治理
Joylive Agent 是一个基于字节码增强的框架,专注于多活和单元化场景下的流量治理。它提供了以下功能:多活流量调度、全链路灰度发布、QPS和并发限制、标签路由、负载均衡,熔断降级,鉴权等流量治理策略。其特性包括微内核架构、强类隔离、业务零侵入等,使其在保持高性能的同时对业务代码影响最小,是面向Java领域的新一代Proxyless Service Mesh探索实现。项目地址:https://github.com/jd-opensource/joylive-agent。
2024-10-03 10:47:16
1340
原创 业务复杂度治理方法论--十年系统设计经验总结
1、小步快跑。每个迭代要能独立交付,保障每次迭代充分验证,更快看到重构效果2、先写后读。通过双写,验证新模型的可行性;通过数据一致性校验后,再逐步迁移读接口3、先轻后重。先做简单逻辑再做复杂逻辑。先迁移轻业务,有了经验后,再去迁移更复杂的重业务
2024-10-03 09:52:24
910
原创 整洁架构演进之路——京东广告投放平台实战
从去年开始京东广告投放系统做了一次以领域驱动设计为思想内核的架构升级,在深入理解DDD思想的同时,我们基于广告投放业务的本质特征大胆地融入了自己的理解和改造。新架构是从设计思想到落地框架都进行了彻底的革新,涉及内容比较多,因此我们希望通过一系列文章循序渐进地阐述本次架构升级的始末。新架构并不是一日而成的,而是经过了多次架构升级的演进,因此我们将本文作为该系列的第一篇文章,先让大家通过广告投放平台的架构演进历程来了解新架构的设计初衷。
2024-10-02 02:40:33
1044
原创 「重构:改善既有代码的设计」实战篇
正确定义问题,比解决问题重要一百倍。那我们首先来搞清楚什么叫重构?作为(名词),重构是指在不改变软件外在功能的前提下,调整其内部结构的过程。这样的调整旨在提高软件的可理解性和降低修改成本。作为(动词),重构意味着通过一系列细微的步骤,不断地调整软件结构,以保持其设计的整洁和可维护性。重构是一种精练的技艺,它通过小的、计划好的修改来减少引入错误的风险。本质上,重构是对已完成的代码进行设计上的改进。
2024-10-02 02:28:59
1151
原创 《大厂算法冲锋:求解字符串数组最长公共前缀》
在互联网大厂的算法面试中,字符串处理是一个常见的考察点。其中,“查找字符串数组中的最长公共前缀”是一道经典题目。本文将通过详细讲解和代码示例,帮助你掌握如何使用Java高效地解决这个问题,并且达到最优的时间复杂度和空间复杂度。
2024-10-01 03:41:26
290
原创 《大厂算法冲锋:字符串数字求和的精妙之道》
在准备互联网大厂的技术面试时,掌握一些常见的算法问题是非常重要的。今天我们将探讨一个经典的问题:如何将两个以字符串形式表示的非负整数相加,并返回它们的和,同样以字符串形式表示。这个问题不仅考察了基本的数据类型转换能力,还涉及到了字符串处理、数学运算以及算法设计。通过这篇文章,你将学到两种高效的解决方案,并且能够深刻理解每一步背后的原理。
2024-10-01 02:37:03
331
原创 面试官:分库分表,真的有必要吗?
如上所述,引入分库分表虽然可以解决数据库瓶颈问题,但是也给系统带来巨大的复杂性,不是非必须不要使用。设计系统我们一向要本着高可拓展去设计,但是不要过度设计和超前设计。适合当前系统的设计才是最好的。
2024-09-30 06:30:00
823
原创 MySQL之分库分表后带来的“副作用”你是怎么解决的?
对于需要扩容时的情况,首先依旧把新的数据写入到老库中,然后写完之后同步给MQ一份,后续再由MQ的消费者去将新数据写到新库中,同时新库在这期间,会去同步老库中原有的数据,这个动作持续到所有旧数据全部同步完成后,再以老库作为校验基准,核对数据无误后,再将模式切换为扩容后的分库模式。这里可以看到,垂直分表虽然会有后患问题,但带来的问题本质上也不算大问题,就是读写数据的操作会相对麻烦一些,下面来看看其他的分库分表方案,接下来是真正的重头戏。其实异步双写方案,也可以用来做后续的节点扩容,但会相对来说比较麻烦一些。
2024-09-30 05:00:00
1490
空空如也
关于#职场和发展#的问题,请各位专家解答!
2024-05-11
程序员怎么做好产品?
2024-04-24
程序员如何获得个人影响力?
2024-03-02
在日常开发中如何解决包冲突?
2024-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅