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

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大,撑爆磁盘,修改下日志级别:

[admin@lnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221561020
Server version: OceanBase 3.2.4.1 (r101000052023010822-346aa35c32e99d1b82d713f75f0072c45bdf7aab) (Built Jan  8 2023 22:52:43)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

obclient [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| oceanbase          |
| information_schema |
| mysql              |
| SYS                |
| LBACSYS            |
| ORAAUDITOR         |
| test               |
+--------------------+
7 rows in set (0.081 sec)

obclient [(none)]> use oceanbase;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
obclient [oceanbase]> ALTER SYSTEM SET syslog_level=OFF;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'OFF' at line 1
obclient [oceanbase]> SHOW PARAMETERS LIKE '%syslog_level%';
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone  | svr_type | svr_ip          | svr_port | name                | data_type | value | info                                                                                                                                   | section  | scope   | source  | edit_level        |
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone1 | observer | 192.168.207.143 |     2882 | ob_esi_syslog_level | NULL      | WDIAG | specifies the current level of logging for obesi. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.207.143 |     2882 | syslog_level        | NULL      | WDIAG | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels.           | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
2 rows in set (0.013 sec)

obclient [oceanbase]> ALTER SYSTEM SET syslog_level='sql.*:error, common.*:error';
Query OK, 0 rows affected (0.027 sec)

obclient [oceanbase]> ALTER SYSTEM SET ob_esi_syslog_level='sql.*:error, common.*:error';
Query OK, 0 rows affected (0.028 sec)

obclient [oceanbase]> SHOW PARAMETERS LIKE '%syslog_level%';
+-------+----------+-----------------+----------+---------------------+-----------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone  | svr_type | svr_ip          | svr_port | name                | data_type | value                       | info                                                                                                                                   | section  | scope   | source  | edit_level        |
+-------+----------+-----------------+----------+---------------------+-----------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone1 | observer | 192.168.207.143 |     2882 | ob_esi_syslog_level | NULL      | sql.*:error, common.*:error | specifies the current level of logging for obesi. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.207.143 |     2882 | syslog_level        | NULL      | sql.*:error, common.*:error | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels.           | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+-----------------+----------+---------------------+-----------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
2 rows in set (0.002 sec)

[admin@lnpg log]$ pwd
/home/admin/oceanbase/log
[admin@lnpg log]$ ls -lt
total 362364
-rw-r--r-- 1 admin admin  41844056 Oct 14 14:46 observer.log
-rw-r--r-- 1 admin admin  33424227 Oct 14 14:46 rootservice.log
-rw-r--r-- 1 admin admin   1506607 Oct 14 14:46 obesi-daemon.log
-rw-r--r-- 1 admin admin     21754 Oct 14 14:46 election.log
-rw-r--r-- 1 admin admin       295 Oct 14 14:42 observer.log.wf
-rw-r--r-- 1 admin admin 268462084 Oct 14 14:42 observer.log.20241014144215329

上述修改还是打印出了很多INFO信息 

需要这样改才有效:

obclient [(none)]> ALTER SYSTEM SET syslog_level='ERROR';
Query OK, 0 rows affected (0.026 sec)

obclient [(none)]> ALTER SYSTEM SET ob_esi_syslog_level='ERROR';
Query OK, 0 rows affected (0.025 sec)

obclient [(none)]> SHOW PARAMETERS LIKE '%syslog_level%';
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone  | svr_type | svr_ip          | svr_port | name                | data_type | value | info                                                                                                                                   | section  | scope   | source  | edit_level        |
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone1 | observer | 192.168.207.143 |     2882 | ob_esi_syslog_level | NULL      | ERROR | specifies the current level of logging for obesi. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 192.168.207.143 |     2882 | syslog_level        | NULL      | ERROR | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels.           | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+-----------------+----------+---------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
2 rows in set (0.002 sec)

停止observer服务:

[admin@lnpg log]$ pgrep observer
32239
[admin@lnpg log]$ kill -9 `pgrep observer`


[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
[admin@lnpg log]$ /home/admin/oceanbase/bin/observer
/home/admin/oceanbase/bin/observer
[admin@lnpg log]$ 
[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
[admin@lnpg log]$ pgrep observer
[admin@lnpg log]$ pgrep observer
[admin@lnpg log]$ pgrep observer
[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
[admin@lnpg log]$ ps -ef|grep observer
admin    15555 10446  0 14:48 pts/2    00:00:00 grep --color=auto observer

必须这种方式启动,不能用绝对路径:
[admin@lnpg log]$ cd /home/admin/oceanbase/
[admin@lnpg oceanbase]$ ./bin/observer

./bin/observer
[admin@lnpg oceanbase]$ ps -ef|grep observer
admin    15609     1 99 14:48 ?        00:00:04 ./bin/observer
admin    16597 10446  0 14:48 pts/2    00:00:00 grep --color=auto observer
[admin@lnpg oceanbase]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
[admin@lnpg oceanbase]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
[admin@lnpg oceanbase]$ ps -ef|grep observer
admin    15609     1 99 14:48 ?        00:00:36 ./bin/observer
admin    16695 10446  0 14:48 pts/2    00:00:00 grep --color=auto observer
[admin@lnpg oceanbase]$ ps -ef|grep observer
admin    15609     1 99 14:48 ?        00:01:10 ./bin/observer
admin    16896 10446  0 14:48 pts/2    00:00:00 grep --color=auto observer
[admin@lnpg oceanbase]$ pgrep observer
15609
[admin@lnpg oceanbase]$ ps -ef|grep 15609
admin    15609     1 99 14:48 ?        00:01:58 ./bin/observer
admin    15672 15609  1 14:48 ?        00:00:00 /home/admin/oceanbase/bin/obesi -d -p 2882 -c 10001
admin    16909 10446  0 14:49 pts/2    00:00:00 grep --color=auto 15609
[admin@lnpg oceanbase]$ netstat -tunlp|grep 288
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:2881            0.0.0.0:*               LISTEN      15609/./bin/observe 
tcp        0      0 0.0.0.0:2882            0.0.0.0:*               LISTEN      15609/./bin/observe 
[admin@lnpg oceanbase]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
[admin@lnpg oceanbase]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
[admin@lnpg oceanbase]$ pwd
/home/admin/oceanbase
[admin@lnpg oceanbase]$ cd log/
[admin@lnpg log]$ ls -lt|head
total 1140008
-rw-r--r-- 1 admin admin 198392336 Oct 14 14:49 observer.log
-rw-r--r-- 1 admin admin  58051631 Oct 14 14:49 rootservice.log
-rw-r--r-- 1 admin admin   1066049 Oct 14 14:49 election.log
-rw-r--r-- 1 admin admin   1632648 Oct 14 14:49 obesi-daemon.log
-rw-r--r-- 1 admin admin       295 Oct 14 14:48 observer.log.wf
-rw-r--r-- 1 admin admin 268465971 Oct 14 14:48 observer.log.20241014144855728
-rw-r--r-- 1 admin admin       586 Oct 14 14:48 observer.log.wf.20241014144855728
drwxrwxr-x 2 admin admin         6 Oct 14 14:47 run
drwxrwxr-x 2 admin admin        50 Oct 14 14:47 audit
[admin@lnpg log]$ date
Mon Oct 14 14:50:02 CST 2024
[admin@lnpg log]$ tail -f observer.log

[admin@lnpg log]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487644
Server version: OceanBase 3.2.4.1 (r101000052023010822-346aa35c32e99d1b82d713f75f0072c45bdf7aab) (Built Jan  8 2023 22:52:43)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

obclient [(none)]> exit
Bye
[admin@lnpg log]$ 

[admin@lnpg oceanbase]$ find ./ -name *config*
./etc/observer.config.bin.history
./etc/observer.config.bin
[admin@lnpg oceanbase]$ more ./etc/observer.config.bin
_enable_oracle_priv_check=True
major_compact_trigger=100
all_server_list=192.168.207.143:2882
__min_full_resource_pool_memory=268435456
min_observer_version=3.2.4.1
syslog_level=sql.*:error, common.*:error
cluster_id=10001
cluster=obdemo
rootservice_list=192.168.207.143:2882:2881
_partition_balance_strategy=standard
enable_one_phase_commit=False
system_memory=1G
memory_limit=20G
zone=zone1
devname=ens192
mysql_port=2881
rpc_port=2882
config_additional_dir=/db/ob/admin/1/obdemo/etc3;/db/ob/admin/log1/obdemo/etc2
datafile_size=10G
data_dir=/home/admin/oceanbase/store/obdemo

 
 
   [admin@lnpg oceanbase]$ pwd
/home/admin/oceanbase

相关文章:

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大,撑爆磁盘,修改下日志级别: [adminlnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221561020 Server version: O…...

【C++11】lambda表达式

前言: 随着 C11 的发布,C 标准引入了许多新特性,使语言更加现代化,开发者编写的代码也变得更加简洁和易于维护。Lambda 表达式是其中一个重要的特性,它提供了一种方便的方式来定义匿名函数,这在函数式编程范…...

前端学习-css的背景(十六)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 背景颜色 语法格式 背景图片 语法格式 背景平铺 语法格式 背景图片位置 语法格式 参数代表的意思 参数是方位名词 参数是精确单位 参数是混合单位 背…...

使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…...

ssh连接慢的问题或远程连接服务超时

问题原因: 在SSH登录过程中,服务器会通过反向DNS查找客户端的主机名,然后与登录的IP地址进行匹配,以验证登录的合法性。如果客户端的IP没有域名或DNS服务器响应缓慢,这可能导致SSH登录过慢。为了解决这个问题&#xf…...

基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: 基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili (一)简介 基于卷积神…...

数据结构与算法:栈与队列的高级应用

目录 3.1 栈的高级用法 3.2 队列的深度应用 3.3 栈与队列的综合应用 总结 数据结构与算法:栈与队列的高级应用 栈和队列是两种重要的线性数据结构,它们在计算机科学和工程的许多领域都有广泛的应用。从函数调用到表达式求值,再到任务调度…...

macos php开发环境之macport安装的php扩展安装,php常用扩展安装,port中可用的所有php扩展列表

macos中,我们使用了port 安装了php后,默认只带有php基本的核心扩展的, 如果需要使用其他的扩展,如 redis, https, xdebug等扩展就需要我们手动来安装对应的扩展。 macos php开发环境 macport安装的php的方法见macos 中…...

使用Pytorch+Numpy+Matplotlib实现手写字体分类和图像显示

文章目录 1.引用2.内置图片数据集加载3.处理为batch类型4.设置运行设备5.查看数据6.绘图查看数据图片(1)不显示图片标签(2)打印图片标签(3)图片显示标签 7.定义卷积函数8.卷积实例化、损失函数、优化器9.训练和测试损失、正确率(1)训练(2)测试(3)循环(4)损失和正确率曲线(5)输出…...

kimi帮我解决ubuntu下软链接文件夹权限不够的问题

我的操作如下 ubuntuubuntu-QiTianM420-N000:~$ ln -s /media/ubuntu/4701aea3-f883-40a9-b12f-61e832117414 code ubuntuubuntu-QiTianM420-N000:~$ ls -l 总用量 636 drwxrwxr-x 2 ubuntu ubuntu 4096 5月 7 17:16 bin drwxrwxrwx 2 ubuntu ubuntu 4096 5月 8 13…...

如何去除背景音乐保留人声?保留人声,消除杂音

在日常生活和工作中,我们经常遇到需要处理音频的情况,尤其是当我们想要去除背景音乐,仅保留人声时。这种需求在处理电影片段、制作音乐MV、或者提取演讲内容等场景中尤为常见。本文将为您详细介绍如何去除背景音乐并保留人声,帮助…...

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 文章目录 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数KfRaiseIrql 函数 KfRaiseIrql 函数 /*********************************************************************** NAME …...

【新书】使用 OpenAI API 构建 AI 应用:利用 ChatGPT等构建 10 个 AI 项目(第二版),404页pdf

通过构建 ChatGPT 克隆、代码错误修复器、测验生成器、翻译应用、自动回复邮件生成器、PowerPoint 生成器等项目,提升您的应用开发技能。 关键特性 通过掌握 ChatGPT 概念(包括微调和集成),转变为 AI 开发专家 通过涵盖广泛 AI …...

修改PostgreSQL表中的字段排列顺序

二、通过修改系统表(pg_attribute)达到字段重新排序的目的有关系统表的概述及用途可以查看官网:http://www.pgsqldb.org/pgsqldoc-cvs/catalogs.html 表名字表用途pg_class表,索引,序列,视图(”关系”)pg_…...

canvas实现手写功能

1.从接口获取手写内容&#xff0c;处理成由单个字组成的数组&#xff08;包括符号&#xff09; 2.合成所有图的时候&#xff0c;会闪现outputCanvas合成的图&#xff0c;注意隐藏 3.可以进行多个手写内容切换 4.基于uniapp的 <template><view class"content&quo…...

Python知识点:基于Python技术,如何使用TensorFlow进行目标检测

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 使用TensorFlow进行目标检测的完整指南 目标检测是计算机视觉领域中的一项重要任…...

初始爬虫13(js逆向)

为了解决网页端的动态加载&#xff0c;加密设置等&#xff0c;所以需要js逆向操作。 JavaScript逆向可以分为三大部分&#xff1a;寻找入口&#xff0c;调试分析和模拟执行。 1.chrome在爬虫中的作用 1.1preserve log的使用 默认情况下&#xff0c;页面发生跳转之后&#xf…...

前端发送了请求头的参数,经debug发现后端请求对象请求头中没有该参数

debug测试&#xff0c;发现前端发来请求头中确实没有找到添加的请求头参数&#xff0c;但是 Network 中却显示请求头中有该参数信息。 原因是RequestHeaders中设置的请求参数含有下划线&#xff0c;NGINX将静默地丢弃带有下划线的HTTP标头&#xff0c;这样做是为了防止在将头映…...

雷池社区版如何使用静态资源的方式建立站点

介绍&#xff1a; SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、X…...

车载电源OBC+DC/DC

文章目录 1. 车载DC/DC应用场景2. PFC2.1 简介2.2 专业名词2.3 常见拓扑结构2.3.1 传统桥式PFC2.3.2 普通无桥型PFC2.3.3 双Boost无桥PFC2.3.4 图腾柱PFC2.3.5 参考资料 2.4 功率因数2.4.1 简介2.4.2 计算 3. DC/DC3.1 Boost升压电路3.1.1 简介3.1.2 电路框图3.1.3 工作原理3.1…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...