面试:线上问题处理
文章目录
- 在处理线上问题时,你的排查思路和步骤是什么
- 线上偶发性问题如何处理和跟踪
- 当系统出现大量错误日志时,你会如何分析和解决问题
- 在高并发场景中,如何排查和解决线程安全问题
- 当系统出现大规模的故障时,你的应急处理和恢复策略是什么
- 慢SQL问题如何排查
- 频繁FullGC问题如何排查
- OOM问题如何排查
- CPU飙高问题如何排查
- 如何设计一个分布式缓存系统
在处理线上问题时,你的排查思路和步骤是什么
在处理线上问题时,通常的排查思路和步骤如下:
- 收集信息:首先,收集关于问题的详细描述,包括用户的报告、错误信息、日志、监控数据等。这些信息将有助于理解问题的背景和范围。
- 复现问题:尽可能复现问题,以确认问题的存在和重现条件。这可以通过模拟用户的操作、使用测试数据、调整环境参数等方式实现。
- 定位问题:使用日志和监控工具,在发生问题的时间范围内,定位相关日志和指标信息。根据异常信息、错误日志、堆栈跟踪等,从日志中找到相关线索,缩小问题的范围。
- 分析代码:逐步分析问题,从代码层面着手。查看相关代码行,理解其功能和可能出现问题的地方。使用调试工具和日志输出等方式,跟踪代码执行路径,确认代码是否按预期执行。
- 进行诊断测试:根据定位的问题可能性,进行相应的诊断测试,以验证假设和找出问题的根本原因。这可能包括修改代码、修改配置参数、模拟并发请求等方式。
- 重新部署或回滚:如果找到了问题的原因并修复了,可以尝试重新部署修复后的版本。如果问题出现在最新部署的版本上,可以考虑回滚到上一个可用的版本。
- 监控观察:在修复后或回滚后,监控系统的运行状况,确保问题已解决。同时,可持续观察和检查相关指标,以确保没有引入新的问题。
- 文档记录:对于排查过程、问题定位和解决方案等,进行详细的记录和文档化,便于未来类似问题的参考和复盘。
需要注意的是,以上步骤并非严格按顺序进行,有时也需要根据具体的问题进行适度调整和重复执行。另外,重要的一点是要在沟通和合作中与团队成员、开发人员和相关运维人员一起解决问题,提高问题的排查效率和结果准确性。
线上偶发性问题如何处理和跟踪
处理和跟踪线上偶发性问题是一项具有挑战性的任务,以下是处理和跟踪线上偶发性问题的一般步骤:
- 收集信息:当出现偶发性问题时,尽可能多地收集相关信息,例如出现问题的时间点、用户行为、错误日志、监控数据等。这些信息有助于了解问题的背景和上下文,为后续的定位和解决提供线索。
- 规律分析:对收集到的信息进行初步分析,尝试找出可能的规律或模式。例如,问题是否在特定时间出现,是否与某些操作或数据有关。这有助于缩小问题范围和定位到可能的原因。
- 监控和实时追踪:设置实时监控和告警机制,以便及时发现问题出现时的异常情况。可以使用日志监控工具、性能监控工具或自定义监控脚本等。实时追踪问题的发生将有助于捕捉关键信息和快速响应。
- 复现和测试:尝试复现问题,创建一个与实际场景相似的测试环境,并重现用户的操作和条件。通过复现问题,我们可以更深入地分析和排查问题。在测试环境中,使用调试工具和日志级别调整,以便捕获更详细的错误信息。
- 数据分析:使用已经收集的数据和日志来进行深入的分析。通过比较正常情况下和问题发生时的数据,找出异常点和差异,并分析其潜在原因。这可能涉及到数据库查询分析、代码审查、性能剖析等技术。
- 解决问题:根据定位到的问题原因,制定相应的解决方案。这可能需要修改代码、优化算法、调整配置参数、增加服务器资源等。在解决问题后,进行全面的测试和验证,确保问题得到完全解决。
- 监控和跟踪:持续监控系统,在解决问题后,跟踪问题是否再次出现。如果问题仍然存在,重新启动追踪和分析步骤,直到问题得到解决。
处理和跟踪线上偶发性问题需要耐心和持续的努力,因为这些问题往往是复杂的且难以预测的。灵活运用各种调试和监控工具,结合数据分析和实时追踪,是解决这类问题的关键。此外,建立健全的监控体系和日志记录机制也是预防和解决线上偶发性问题的有效手段。
当系统出现大量错误日志时,你会如何分析和解决问题
当系统出现大量错误日志时,我会按照以下步骤进行分析和解决问题:
- 分类和过滤:首先,我会对错误日志进行分类和过滤。把不同类型的错误分组,例如数据库错误、网络错误、内存错误等,以便更好地理解问题的本质。同时,我会过滤掉重复的错误日志,只关注唯一的错误,并排除无关的日志。
- 定位和追踪:选取一些关键的错误日志进行定位和追踪。通过查看错误日志中的时间戳、请求路径、错误信息等相关信息,我会尝试找到错误发生的位置和触发因素。如果错误日志中包含堆栈跟踪信息,我会沿着堆栈跟踪路径追踪到代码的具体位置。
- 数据分析:通过使用错误日志中的关键信息,我会检查数据库、缓存、网络连接等相关的数据和设置。例如,我可能会检查数据库连接池的配置、数据库表的索引、缓存容量等是否存在问题。我还会查看网络通信日志,以排除网络延迟或故障引起的问题。
- 原因分析:一旦定位到可能的问题区域,我会进一步分析错误的原因。这可能涉及到代码审查、调试工具的使用、跟踪方法调用等。通过检查代码逻辑、检视输入输出值、调试变量值等,我可以确定错误产生的根本原因。
- 解决问题:根据分析的结果,我会制定相应的解决方案。这可能包括修改代码、优化算法、调整配置参数、增加服务器资源等。在解决问题后,进行全面的测试和验证,确保问题得到完全解决。
- 监控和警告:在解决问题后,我会设置监控和警告机制,以便及时发现和处理类似错误。这有助于及早发现潜在问题,并采取措施预防它们的再次出现。
通过以上步骤,我可以对系统出现大量错误日志的问题进行逐步的分析和解决。重要的是要细心和耐心,以找到根本原因,并采取恰当的措施来解决问题。
在高并发场景中,如何排查和解决线程安全问题
在高并发场景中排查和解决线程安全问题是一项挑战性的任务,下面是一些常见的方法和步骤:
- 确认问题:首先,确保问题是由线程安全引起的。线程安全问题可能包括数据竞争、死锁、活锁等。通过观察系统的行为和错误日志,定位到可能与线程安全相关的异常现象和错误信息。
- 分析和定位:确定问题的范围,分析问题所在的代码片段或模块。通过代码审查、日志跟踪、调试工具等方式,排查具体的线程安全问题。可能需要检查锁的使用、共享数据的访问、并发控制机制等。
- 数据竞争检测:使用工具和技术来检测和分析数据竞争问题。例如,可以使用线程分析工具来捕获并检测到并发访问共享数据的情况。这些工具可以帮助你找出存在竞争的共享资源,并分析竞争产生的根本原因。
- 锁机制审查:检查锁的使用情况,确保在必要的时候进行正确的加锁和解锁。注意检查锁的范围和粒度,以避免过度加锁或锁冲突。另外,可以考虑使用更高级别的并发控制机制,如读写锁、信号量等,来提高并发性和减少锁冲突。
- 数据共享管理:仔细管理共享数据,确保多个线程访问同一份数据时不会出现冲突。可以通过使用线程安全的数据结构、使用不可变对象、同步机制等方法,来避免数据竞争和冲突。
- 并发控制优化:在高并发场景中,考虑并发控制机制的性能和效率是非常重要的。可以通过减少锁的粒度、提高并发度、使用无锁数据结构等方式,来优化并发控制,减少线程间的竞争和阻塞。
- 测试和验证:在解决线程安全问题后,进行全面的测试和验证,确保问题得到完全解决。可以使用压力测试工具模拟高并发场景,并检查系统的行为和性能。
解决线程安全问题需要综合运用代码分析、调试工具、并发控制机制和测试技术。重要的是,对系统进行全面的设计和测试,以尽可能地避免线程安全问题的发生。当问题出现时,及时排查和解决问题,并进行合适的优化和测试,以确保系统的稳定性和并发性能。
当系统出现大规模的故障时,你的应急处理和恢复策略是什么
当系统出现大规模的故障时,应急处理和恢复策略如下:
- 迅速响应:首先,我会迅速响应故障事件,通知相关团队成员和相关方。建立一个紧急响应小组,有专门的人员负责故障的应急处理和协调。
- 故障排查:尽快确定故障的具体原因和影响范围,使用适当的工具和技术进行故障排查。
- 切换备份:如果存在冗余的备份系统或备援方案,我会考虑切换到备份系统以提供最小的中断和最快的恢复。如果没有备份系统,我会尽可能快速地修复故障并将系统恢复到正常状态。
- 优先级和紧急性:根据故障的紧急性和影响范围,我会确定优先处理的任务,以最小化影响和恢复系统。例如,可以使用缩小影响范围、分阶段恢复等策略来降低紧急情况的影响。
- 通信和沟通:在处理故障的过程中,我会及时向相关方和用户提供透明和准确的沟通。通过定期更新、公告、客服等方式,告知用户故障进展和预计的恢复时间。
- 数据完整性和安全性:在应急处理和恢复时,我会特别关注数据的完整性和安全性。确保故障处理过程中不会导致数据丢失或泄漏。
- 故障分析和改进:在系统恢复正常后,我会进行故障分析,找出故障的根本原因,并探索如何避免类似故障的再次发生。这可能包括重新设计系统架构、增加冗余机制、改进监控和预警系统等。
总之,应急处理和恢复策略需要快速响应、紧急通信、优先级处理、数据安全保护和故障分析等方面的综合考虑。同时,及时学习和改进故障恢复过程,以建立更健全和高可用的系统。
慢SQL问题如何排查
如果你的数据库查询变慢了,可以采取以下步骤来找出问题并解决它:
- 找出慢查询:首先,找出哪些数据库查询很慢。通常,这些查询会花费很长时间才能返回结果。
- 检查查询计划:查看慢查询的执行计划,看看数据库是如何执行这些查询的。这可以帮助你找到性能瓶颈。
- 考虑索引:确保查询使用了适当的索引。有时候,缺少或错误使用索引会导致查询变慢。
- 优化SQL:审查慢查询的SQL语句,看看是否可以通过改写查询或者使用更有效的SQL来提高性能。
- 检查数据库服务器:确保数据库服务器有足够的资源来处理查询。不足的CPU、内存或磁盘IO可能会导致性能问题。
- 连接池:如果你在应用程序中使用了数据库连接池,确保连接池的配置正确。连接池的设置也可能影响性能。
- 数据库统计信息:查看数据库的统计信息,了解表的大小、索引情况和数据分布。这些信息可以指导你哪些地方需要优化。
- 查询缓存:考虑使用查询缓存,将经常执行的查询结果缓存起来,以减轻数据库负担。
- 分页查询优化:如果涉及到分页查询,确保使用了有效的分页查询方式,避免一次性获取大量数据。
- 监控和性能测试:建立监控系统,随时监测数据库性能。进行性能测试,模拟高负载情况,确保数据库在压力下能够正常工作。
通过这些简单的步骤,你可以找到慢SQL查询的原因并采取措施来提高数据库性能。
频繁FullGC问题如何排查
如果你的应用频繁发生Full GC,可能会影响性能,下面是一些排查的方法:
- 查看GC日志:看一下应用程序的GC日志,找出Full GC发生的原因。日志通常会告诉你是内存不足还是其他原因导致的。
- 分析内存泄漏:检查是否有内存泄漏,即不再需要的对象没有被释放。可以用工具帮助你找到这些问题。
- 检查对象生命周期:确保不再使用的对象能被垃圾回收,不要长时间持有对象的引用。
- 优化代码:看看代码中是否有问题,比如频繁创建大对象或不合理的缓存策略。优化代码可以减少内存占用。
- 调整垃圾回收策略:考虑根据应用程序的需求调整垃圾回收器和参数。
- 使用监控工具:用监控工具实时监控内存使用和Full GC事件,帮助你找到问题并实时解决。
通过这些方法,你可以找到Full GC问题的根本原因,提高应用程序的性能和稳定性。
OOM问题如何排查
当遇到Java应用程序的OOM(内存溢出)问题时,可以按照以下步骤来排查和解决:
- 查看错误信息:首先,看一下出现的OOM错误信息,确定是哪种内存溢出问题。
- 检查内存使用:使用监控工具查看Java堆内存的使用情况,看看是不是内存用光了。
- 找内存泄漏:用内存分析工具检查是否有内存泄漏,即那些不再使用的对象没有被清理。
- 看代码:审查应用程序代码,找出可能引起内存问题的部分。
- 调整内存设置:如果堆内存不够,可以考虑调大内存设置。
- 优化代码:改进代码以减少内存占用,尤其是那些频繁创建对象的地方。
- 检查第三方库:确保使用的库是最新版,以避免已知的内存问题。
- 分析垃圾回收:查看垃圾回收日志,看看是否需要调整垃圾回收器的设置。
- 用内存监控工具:使用工具实时监控内存使用情况,追踪问题。
- 定期监控:建立监控系统,随时检查内存使用,早发现问题。
CPU飙高问题如何排查
当你遇到高CPU占用问题时,可以采取以下步骤来排查和解决:
- 查看任务管理器:首先,打开任务管理器(Windows)或使用类似的工具(Linux上的top命令),找出哪个程序或进程正在占用大量的CPU。
- 检查程序内部:找到高CPU占用的程序后,检查程序内部是否有问题,比如可能有无限循环或内存泄漏。查看程序的日志和配置文件也有助于找到问题。
- 性能剖析工具:使用性能剖析工具来深入了解程序的性能问题。这些工具可以帮助你找出代码中的性能瓶颈,比如哪个函数占用了大部分CPU时间。
- 检查外部资源:确保程序所依赖的外部资源(如数据库或网络服务)正常运行,以免它们成为瓶颈。
- 硬件资源:检查服务器的硬件资源使用情况,确保内存和磁盘等资源不是瓶颈。
- 代码审查和优化:如果在性能剖析中找到了问题代码,进行代码审查并优化。这可能包括改进算法、减少不必要的操作等。
- 重启服务:有时,简单地重启相关服务或应用程序就能解决问题,尤其是在资源问题或内部状态异常的情况下。
- 持续监控:最后,建立监控机制,定期检查系统的性能,以便及早发现和解决潜在的性能问题。
如何设计一个分布式缓存系统
设计一个分布式缓存系统需要考虑以下几个方面:
- 数据分片:将缓存数据分散存储在多个节点上,每个节点负责一部分数据,以提高并发读写操作的吞吐量。
- 数据一致性:为了保证数据的一致性,可以采用一致性哈希算法来确定数据在哪个节点上存储,并使用分布式锁来控制并发写操作。
- 缓存失效策略:可以采用时间过期策略或基于LRU(最近最少使用)算法来淘汰缓存数据,以避免缓存空间被耗尽。
- 缓存更新策略:可以采用写回(Write Back)策略,即先将更新操作记录在缓存中,然后异步地更新到持久化存储中,以提高写操作的性能。
- 缓存命中率优化:可以使用布隆过滤器来判断一个数据是否存在于缓存中,以减少缓存未命中的情况。
- 数据备份和容错:可以使用数据复制或数据备份的方式来提高系统的容错性,以防止节点故障导致数据丢失。
- 负载均衡:可以使用负载均衡算法将请求均匀地分发到各个缓存节点上,以提高系统的整体性能和可扩展性。
以上是设计一个分布式缓存系统的一些关键考虑点,具体的实现方式会根据具体的需求和场景而有所不同。在设计过程中,还需要考虑系统的可用性、性能、扩展性和安全性等方面的需求,并进行合理的权衡和折衷。
相关文章:

面试:线上问题处理
文章目录 在处理线上问题时,你的排查思路和步骤是什么线上偶发性问题如何处理和跟踪当系统出现大量错误日志时,你会如何分析和解决问题在高并发场景中,如何排查和解决线程安全问题当系统出现大规模的故障时,你的应急处理和恢复策略…...

Vue3中快速Diff算法
在Vue3中,快速Diff算法主要用于优化虚拟DOM的更新过程,减少不必要的DOM操作,提高性能。以下是对Vue3源码中快速Diff算法的解读: 首先,我们需要引入Vue3的相关包: import { reactive, toRefs, watch } fro…...

ROS2+STM32小车红外对射光电计数器模块资料
数据:一个周长内有20个孔洞或者20个分隔。外径:6.8cm 图片不是实物图,是示意图 因为没有串口,所以不可能会发送出数字的,就是通过电压变化次数来计算距离或者其他数据 有遮挡时,输出高电平,无遮…...

Android设计模式--桥接模式
闻正言,行正道,左右前后皆正人 一,定义 将抽象部分与实现部分分离,使它们都可以独立地进行变化 二,使用场景 从模式的定义中,我们大致可以了解到,这里的桥接的作用其实就是连接抽象部分与实现…...

1、分布式锁实现原理与最佳实践(一)
在单体的应用开发场景中涉及并发同步时,大家往往采用Synchronized(同步)或同一个JVM内Lock机制来解决多线程间的同步问题。而在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进程之间的数据同步问题&…...

Autosar通信实战系列03-NM模块要点及其配置介绍
本文框架 前言1. NM模块要点介绍1.1 NM基本功能介绍1.2 NM协同功能介绍2. NM配置2.1 NmGlobalConfig配置2.2 NmChannelConfigs配置前言 在本系列笔者将结合工作中对通信实战部分的应用经验进一步介绍常用,包括但不限于通信各模块的开发教程,代码逻辑分析,调测试方法及典型问…...

Golang模块管理功能
文章目录 1. Golang 包管理1.1 GOPATH 包管理1.2 Go vendor 包管理1.3 Go modules包管理2. Go Modules 应用实践2.1 Go modules关键信息2.1.1 go mod 命令行2.1.2 配置代理服务2.2 创建项目2.3 获取依赖包2.4 运行项目1. Golang 包管理 1.1 GOPATH 包管理 第一阶段: Golang初…...

从零构建属于自己的GPT系列1:文本数据预处理、文本数据tokenizer、逐行代码解读
🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:文本数据预处理 从零构建属于自己的GPT系列2:语…...

scipy 笔记:scipy.spatial.distance
1 pdist 计算n维空间中观测点之间的成对距离。 scipy.spatial.distance.pdist(X, metriceuclidean, *, outNone, **kwargs) 1.1 主要参数 X一个m行n列的数组,表示n维空间中的m个原始观测点metric使用的距离度量out输出数组。如果非空,压缩的距离矩阵…...

java video audio encoder
引言 在现代互联网的时代,视频和音频已经成为人们生活中不可或缺的一部分。而在计算机科学中,视频和音频编码器则是将原始的视频和音频数据转换为可压缩格式的关键技术。在本文中,我们将探讨基于Java的视频和音频编码器的使用。 什么是视频…...

TypeScript 中声明类型的方法
1、使用:运算符来为变量和函数参数指定类型。例如: let num: number 5; function add(a: number, b: number): number {return a b; }2、使用 type 关键字来声明自定义类型别名。例如: type Point {x: number;y: number; };3、使用 interface 关键字…...

显示器校准软件BetterDisplay Pro mac中文版介绍
BetterDisplay Pro mac是一款显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 BetterDisplay Pro mac软件特点 - 显示器校准:可以根据不同的需求和环境条件调整显示器的颜色、亮度和对比度等参数…...

Element UI 走马灯 实现鼠标滚动切换页面
鼠标滚动切换页面 elementui Carousel 走马灯鼠标滚轮事件实现 一、在轮播图外的盒子外添加鼠标滚轮事件,触发GoWheel函数。 wheel"goWheel"二、通过判断deltaY的数值来触发相应事件 它检查滚轮事件的deltaY属性是否大于0 event.deltaY当鼠标滚轮向下…...

在Docker上部署Springboot项目
在Docker上部署Springboot项目 ###1.安装docker 2.安装mysql 拉 Mysql 镜像 docker pull mysql:5.7.31运行 Mysql 5.7.31 第一次运行需要设置密码 docker run -d --name myMysql -p 9506:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD1234 mysql:5.7.31不是…...

2024中国眼博会,全国眼康与眼镜品牌加盟展会,北京眼健康展
立足北京,面向全球,2024第六届CEYEE中国眼博会,将以大规模的展览面积在4月与您相会; ——春天是万物复苏的季节,更是企业开拓市场,抓住春季发展机遇的重要时节;第六届CEYEE中国眼博会将在2024年…...

C++学习 --谓词
目录 1, 什么是谓词 1-1, 一元谓词 1-2, 二元谓词 1, 什么是谓词 返回bool类型的仿函数, 叫着谓词, 分为一元谓词和二元谓词 1-1, 一元谓词 operator()接收一个参数,叫着一元谓…...

Arkts深入了解运用 LazyForEach【鸿蒙专栏-17】
文章目录 深入了解 LazyForEach:数据懒加载LazyForEach概述接口描述IDataSource接口DataChangeListener接口使用限制和注意事项键值生成规则和组件创建规则首次渲染键值相同时错误渲染键值生成规则和组件创建规则首次渲染键值相同时错误渲染键值生成规则和组件创建规则首次渲染…...

如何让你的 Jmeter+Ant 测试报告更具吸引力?
引言 想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和测试。当你终于完成了测试并准备生成测试报告时,你可能会发现这个过程相当乏味,而对于其他人来说,它可能也不那么吸引人。 但是…...

游戏APP接入哪些广告类型
当谈到游戏应用程序(APP)接入广告时,选择适合用户体验和盈利的广告类型至关重要。游戏开发者通常考虑以下几种广告类型: admaoyan猫眼聚合 横幅广告: 这些广告以横幅形式显示在游戏界面的顶部或底部。它们不会打断游戏…...

Echarts地图registerMap使用的GeoJson数据获取
https://datav.aliyun.com/portal/school/atlas/area_selector 可以选择省,市,区。 也可以直接在地图上点击对应区域。 我的应用场景 我这里用到这个还是一个特别老的大屏项目,用的jq写的。显示中国地图边界区域 我们在上面的这个地区选择…...

【JavaEE】Java中的多线程 (Thread类)
作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…...

python中具名元组的使用
collections.namedtuple是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类。 from collections import namedtuple City namedtuple(City2, name country population coordinates) tokyo City(Tokyo, JP, 36.933, (35.689722, 139.691667)) pr…...

【开题报告】基于SpringBoot的婚纱店试妆预约平台的设计与实现
1.选题背景 婚礼是人生中的重要时刻,而试妆是婚礼准备过程中不可或缺的一环。传统的婚纱店试妆预约方式通常需要亲自到店或通过电话预约,这样的方式可能存在一些问题。首先,用户需要花费时间和精力到店进行预约,对于忙碌的现代人…...

Qt 布局讲解及举例
Qt布局是一个用于管理窗口部件位置和大小的机制,它使得开发人员能够轻松地创建可伸缩、可调整大小的界面。在Qt中,布局管理器是一种用于自动调整窗口部件大小的机制,它可以根据窗口大小的变化自动调整部件的位置和大小。 Qt布局管理器通过使…...

【微服务】java 规则引擎使用详解
目录 一、什么是规则引擎 1.1 规则引擎概述 1.2 规则引擎执行过程 二、为什么要使用规则引擎 2.1 使用规则引擎的好处 2.1.1 易于维护和更新 2.1.2 增强应用程序的准确性和效率 2.1.3 加快应用程序的开发和部署 2.1.4 支持可视化和可管理性 2.2 规则引擎使用场景 三、…...

HCIA-Datacom跟官方路线学习
通过两次更换策略。最后找到最终的学习方案,华为ICT官网有对这个路线的学习,hcia基础有这个学习路线,hcip也有目录路线。所以,最后制定学习路线,是根据这个认证的路线进行学习了: 官网课程:课程…...

MySQL三大日志详细总结(redo log undo log binlog)
MySQL日志 包括事务日志(redolog undolog)慢查询日志,通用查询日志,二进制日志(binlog) 最为重要的就是binlog(归档日志)事务日志redolog(重做日志)undolog…...

XXL-Job详解(二):安装部署
目录 前言环境下载项目调度中心部署执行器部署 前言 看该文章之前,最好看一下之前的文章,比较方便我们理解 XXL-Job详解(一):组件架构 环境 Maven3 Jdk1.8 Mysql5.7 下载项目 源码仓库地址链接: https://github.…...

支持Arm CCA的TF-A威胁模型
目录 一、简介 二、评估目标 2.1 假定 2.2 数据流图 三、威胁分析 3.1 威胁评估 3.1.1 针对所有固件镜像的一般威胁 3.1.2 引导固件可以缓解的威胁...

【Web端CAD/CAE文字标注】webgl+canvas 2d实现文字标注功能
一、需求背景 在CAD/CAE领域经常会遇到显示节点编号这种需求,效果如下图: 本文介绍如何在WebGL中实现文字的显示,对于如何在OpenGL中实现请绕路。 二、实现原理 Canvas是HTML5提供的元素,用于在网页上绘制图形,其支…...