尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ob10实战:从TNS配置到批量巡检的Oracle连接工具指南
简介这款轻量级Oracle连接与管理工具采用免安装压缩包形式解压即可运行适合数据库开发、测试和运维人员在日常工作中快速连接数据库、执行查询以及完成数据导入导出。工具整体界面比较直观操作逻辑贴近常见数据库客户端作者称其与PL/SQL Developer相比并不逊色因此可以作为轻量化替代方案尤其适合需要频繁切换环境或不愿付出安装配置成本的使用者。整个压缩包仅有1.74MB包含10个文件核心文件ob10.exe为绿色主程序chm帮助文档和readme.htm提供操作指引多个tpl文件可用于保存界面或连接样式ico图标便于在快捷方式中区分。资源体积小、结构清晰即使放入U盘也能随身携带使用。目前已有1387人下载学习资源还提供在线首页链接和基本配置模板适合希望快速搭建Oracle数据库连接工具链的读者保存备用。1. 被叫“ob10”的 Oracle 连接工具到底解决了什么痛点最近常看到“非常好用的oracle连接工具 ob10”这组词在论坛和团队内部文档里流传与其说它是一款神秘的客户端不如说它代表了一种真实诉求一套开箱即用、拿到手就能连上 Oracle、报错能讲清楚的连接环境。某团队迁移核心库时因为 tnsnames.ora 里 service_name 写错一个字符从下午排查到凌晨最后发现数据库本身完全正常问题全在连接层。ob10 这类工具的真正价值不是帮你输入密码而是把环境变量、TNS 解析、字符集和会话状态一次讲清楚。它适合被连接问题反复纠缠的 DBA、运维和后端开发。下文按自建方案从零复现这个方向先立理论再给命令最后把坑一个个摆出来。2. 拆开 ob10 的底子Instant Client、TNS 配置与连接标识符Oracle 连接工具看起来就是“账号密码输进去回车”但把它拆开能在团队里长期可用的连接工具至少包含三样东西客户端运行时、TNS 解析配置、连接脚本。我维护这类工具时习惯把工具名沿用团队内部代号 ob10下面所有命令和目录结构都用这个代号命名读者可以原样搬到自己环境里改路径。2.1 常见做法连接工具包通常由哪三块组成Oracle 的客户端连接大致分两条技术路线。第一条是 OCI 路线基于 Oracle Instant Client 和 SQL*Plus第二条是 JDBC Thin 路线本质上只有一个 jar 包。我在多种环境里维护连接工具时发现ob10 这类被团队反复使用的工具几乎都是第一条路线的封装而不是在 JDBC 上做壳。原因很现实OCI 方式不依赖 Java 运行时可以做成一个独立目录复制到任何机器解压即用JDBC Thin 更适合嵌进应用服务器但不适合 DBA 手工排查和批量巡检。两条路线的差异用一张表能看得很清楚对比项OCI SQL*PlusJDBC Thin是否需要客户端库需要 Instant Client 运行时只要一个 jar配置入口tnsnames.ora 环境变量JDBC URL典型使用者DBA、运维、脚本巡检Java 应用、Web 服务排错手段tnsping、lsnrctl、sqlplus 直接可用只能看异常栈字符集控制NLS_LANG 进程级生效连接属性设置选择 OCI 路线还有一个隐藏好处SQL*Plus 是官方提供的命令行客户端接受度最高网上能搜到的排错经验也最多。很多号称“非常好用”的连接工具本质都是把 Instant Client、tnsnames.ora 和一组常用脚本打包再起一个顺口的名字。所以这篇文章不依赖某个具体安装包而是把这条打包路线完整走一遍。2.2 最小落地搭一套不污染系统的连接环境我在新机器上部署这类工具时第一步不是安装而是解压 Instant Client 到一个独立目录然后把环境变量写进一个启动脚本。这样做的好处是不往系统目录里塞动态库不会和机器上其他 Oracle 客户端打架卸载时直接删目录即可。以下脚本是整套工具的地基# 假设 Instant Client 已解压到 /opt/ob10/instantclient export OB10_HOME/opt/ob10/instantclient export TNS_ADMIN$OB10_HOME/network/admin export LD_LIBRARY_PATH$OB10_HOME:$LD_LIBRARY_PATH export PATH$OB10_HOME:$PATH # 先确认别名能不能解析再试真实登录 # 如果精简包没有 tnsping直接跳到 sqlplus 这行 tnsping ORCL_APP sqlplus -L app_user/app_passwordORCL_APP这里每个环境变量各有分工缺一个就会出现一类古怪报错。OB10_HOME 是客户端根目录所有脚本都相对它找路径TNS_ADMIN 告诉客户端去哪里找 tnsnames.ora不设置时默认去 Instant Client 自己的 network/admin 下找LD_LIBRARY_PATH 负责让 sqlplus 启动时加载 libclntsh.so 等动态库PATH 决定你在命令行能直接敲出 sqlplus 和 tnsping。环境变量作用不设置时常见报错OB10_HOME客户端根目录脚本相对它找路径找不到 libclntsh程序启动失败TNS_ADMIN指定 tnsnames.ora 所在目录ORA-12154LD_LIBRARY_PATH运行时加载 OCI 动态库sqlplus 命令直接崩溃PATH找到 sqlplus、tnspingcommand not foundtnsnames.ora 是整个工具的解析核心。一个典型的别名配置长这样# tnsnames.ora 里的别名解析示例 ORCL_APP (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.0.2.10)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl_app) ) )别名的缩进和换行用普通空格即可但全角空格和不可见字符会直接让解析失败这是最常见的低级翻车点。HOST 可以是 IP 或主机名PORT 默认 1521SERVICE_NAME 必须和数据库实际注册的服务名一致。连接时实际有三种写法我一般按场景选Easy Connectsqlplus user/pass//192.0.2.10:1521/orcl_app适合临时排查不依赖 tnsnames.ora。本地命名sqlplus user/passORCL_APP依赖 TNS_ADMIN 目录下的 tnsnames.ora适合日常使用。目录命名由统一目录服务提供例如 LDAP团队规模大了以后才会用上。2.3 用服务名还是 SID连接标识符的第一个分岔路新手最容易在这个岔路口翻车。早期教材和旧脚本习惯写成 sqlplus user/passORCL这里 ORCL 是 SID。但从动态监听注册开始SID、全局数据库名、service_name 经常对不上尤其在多租户架构下PDB 是以服务名的方式对外提供连接的。我刚接触 Oracle 时也吃过亏手写了一个 SID 进去tnsping 能通sqlplus 就是报 ORA-12514。后来统一改用 SERVICE_NAME才真正消停了。验证监听里到底注册了哪些服务名用这条命令lsnrctl services输出里每个 service 下面会列出实例名等信息能直接看到服务名是否已动态注册。如果 lsnrctl services 里看不到你写的 service_name说明实例刚启动还没注册完成或者 local_listener 配置不对。我在 ob10 这类工具里默认把连接标识符统一写成 SERVICE_NAME并严格要求数据库 service_names 与 tnsnames.ora 保持一致团队内部就不会再出现“我这个 SID 是对的”这类争论。连接层的地基打稳了后面调字符集、调会话参数才有意义。3. 好用是靠参数堆出来的字符集、会话和连接池必调项连接工具能连上数据库只是及格线真正“好用”体现在参数上字符集不乱码、连接慢能定位、给应用当探针时不出幺蛾子。这一章把这三个必调项逐个说透。3.1 字符集必须写全三段NLS_LANG乱码是连接工具被吐槽最多的点我见到的情况里大半不是工具问题而是 NLS_LANG 设置不对。NLS_LANG 的格式是固定三段语言_地区.字符集。例如export NLS_LANGAMERICAN_AMERICA.AL32UTF8AMERICAN 决定提示语言AMERICA 决定日期和数字格式习惯AL32UTF8 决定客户端输出字符集。服务端字符集是 AL32UTF8 时客户端也设 AL32UTF8数据库会负责转换如果服务端是 ZHS16GBK客户端设成 ZHS16GBK 显示最省事。还有一个经常被忽略的环节终端编码必须和 NLS_LANG 里的字符集一致。终端是 UTF-8NLS_LANG 却设成 ZHS16GBK查询结果照样在屏幕上变乱码。实际动手前先确认两边字符集两条 SQL 就够了SELECT value FROM nls_database_parameters WHERE parameter NLS_CHARACTERSET;SELECT sys_context(USERENV,LANGUAGE) FROM dual;第一条看数据库真实字符集第二条看当前会话实际生效的语言环境。我一般会把这两句合成一个 check_charset.sql 放进工具目录新环境连上先跑一遍。对照表如下场景推荐 NLS_LANG说明数据库 AL32UTF8AMERICAN_AMERICA.AL32UTF8通用终端设 UTF-8数据库 ZHS16GBKSIMPLIFIED CHINESE_CHINA.ZHS16GBK中文环境终端设 GBK只想看英文提示AMERICAN_AMERICA.AL32UTF8排错时最通用提示不要把 NLS_LANG 写进全局配置文件多个项目会互相干扰放进 ob10 的启动脚本里按需加载更安全。3.2 连接建好后先看三个视图实例、会话与等待事件连接工具不只是登录用的它还要能回答“这个库现在到底行不行”。我每次排查连接问题都按固定顺序看三个视图。第一个是实例状态第二个是会话分布第三个是等待事件排行。把它们放在一个 SQL 文件里一次执行出全部结果-- 实例状态与服务名OPEN 才是可正常服务的状态 SELECT instance_name, status, version FROM v$instance; -- 当前连接按客户端分组的会话数看谁在占连接 SELECT machine, program, status, count(*) FROM v$session WHERE username IS NOT NULL GROUP BY machine, program, status ORDER BY count(*) DESC; -- 非空闲等待事件排行连接慢时重点看 SELECT event, wait_class, total_waits, ROUND(time_waited_micro / 1000000, 2) AS wait_sec FROM v$system_event WHERE wait_class Idle ORDER BY wait_sec DESC FETCH FIRST 10 ROWS ONLY;第一个查询里的 status 出现 OPEN 才说明实例处于正常服务状态MOUNTED 状态下能连上但查不了业务数据。第二个查询按机器名和程序名分组能快速看出是不是某个应用占着大量连接不释放。第三个查询过滤掉 Idle 空闲等待专门看真正消耗时间的等待事件如果 log file sync、enq 这类事件时间异常连接慢的问题往往不在客户端而在数据库内部。如果你的数据库版本低于 12cFETCH 语法不识别改成外层套 ROWNUMSELECT * FROM ( SELECT event, wait_class, total_waits, ROUND(time_waited_micro / 1000000, 2) AS wait_sec FROM v$system_event WHERE wait_class Idle ORDER BY wait_sec DESC ) WHERE ROWNUM 10;注意先排序再套 ROWNUM否则取到的是未排序的前十行这个顺序错误在低版本库里非常隐蔽。3.3 给应用当探针连接池三个必调参数某 Java Web 项目这里叫模拟项目X在早晨第一次请求时总是超时DBA 用工具连接一切正常应用层却频繁报错。这类问题十有八九出在连接池冷启动夜间空闲连接被回收早上第一个请求要现场建立连接恰好叠加网络握手和认证延迟直接触发超时。用 ob10 这类工具能验证数据库本身没问题接下来要调的是连接池参数。一份最小可用的连接池配置大概长这样# 模拟项目X 的数据库连接池最小配置 jdbc.urljdbc:oracle:thin://192.0.2.20:1521/ORCL_APP jdbc.userapp_user jdbc.password示例库口令 jdbc.maxTotal50 jdbc.maxIdle10 jdbc.minIdle2 jdbc.maxWaitMillis5000 jdbc.testOnBorrowtrue jdbc.validationQuerySELECT 1 FROM dualminIdle 是解决冷启动的关键连接池会在后台把连接数补到 minIdle凌晨回收后不再彻底归零。maxWaitMillis 控制拿连接的超时时间避免数据库瞬间不可用时应用线程全部卡住。testOnBorrow 在每次借出连接前执行 validationQuery代价很小但对网络抖动敏感如果追求极致性能可以改成 testWhileIdle 只验证空闲连接。maxTotal 不宜拍脑袋设置。数据库侧的 processes 和 sessions 参数会限制真实上限连接池配得再大也突破不了服务端限制SELECT resource_name, current_utilization, limit_value FROM v$resource_limit WHERE resource_name IN (processes,sessions);如果 current_utilization 已经接近 limit_value增加连接池只会让报错提前到来。这个查询应该和连接池调整放在同一天做调完连接池再看一眼数值变化才能确认方向对不对。4. Oracle 连接避坑5 个高频 ORA 报错从现象到根治连接层的问题很少是数据库“坏了”绝大多数是配置漂移和各方环境不一致。这一章把我在实际运维中反复遇到的 5 个典型踩坑记录列出来每条都按现象、原因、解决三步展开。4.1 ORA-12154TNS 名字解析失败先查 TNS_ADMIN现象sqlplus 报 ORA-12154: TNS:could not resolve the connect identifier specified意思是客户端根本找不到这个连接标识符。原因客户端在指定目录下找不到 tnsnames.ora 里的别名。常见诱因有三个TNS_ADMIN 指向了一个含旧文件的目录tnsnames.ora 是从 Windows 拷贝过来的换行符没处理别名后面跟了全角空格或不可见字符。解决先确认当前实际生效的 TNS_ADMIN再检查这个目录里的文件echo $TNS_ADMIN grep -i ORCL_APP $TNS_ADMIN/tnsnames.ora dos2unix $TNS_ADMIN/tnsnames.ora # 没有 dos2unix 时用 sed 处理 sed -i s/\r$// $TNS_ADMIN/tnsnames.ora我一般会先 echo 看目录再用 grep 看别名是否存在最后统一处理换行符。看起来像是玄学但“两个 tnsnames.ora 互相覆盖”就是我实际遇到的坑。4.2 ORA-12514监听认得主机却不认识服务现象ORA-12514: TNS:listener does not currently know of service requested in connect descriptor监听器在工作但它不认识你请求的服务名。原因service_name 拼写错误最常见另一种情况是实例刚启动动态注册还没完成监听器暂时查不到服务。解决先用 lsnrctl services 看监听器实际注册了哪些服务名再用 Easy Connect 方式绕过 tnsnames.ora 直接验证lsnrctl services sqlplus -L app_user/app_password//192.0.2.10:1521/正确服务名如果 Easy Connect 能连上而 tnsnames 方式不行问题出在别名配置如果 Easy Connect 也报 ORA-12514说明监听器确实不认识这个服务名再查实例侧的 service_names 和 local_listenerSHOW PARAMETER service_names; SHOW PARAMETER local_listener;常见的做法是把 service_names 改成目标服务名并确认 local_listener 指向正确的监听地址。这个坑的麻烦在于报错文案一样实际原因可能完全不同。4.3 登录成功但全是乱码NLS_LANG 与终端编码打架现象连接成功SELECT 中文出来全是问号或奇怪的乱码部分字符还变成不可见方块。原因客户端 NLS_LANG 声称的字符集与服务端不一致或者终端编码和客户端输出编码不一致。前者数据库会做错误转换后者屏幕显示直接错位。解决先查服务端字符集再设置 NLS_LANG最后统一终端编码export NLS_LANGAMERICAN_AMERICA.AL32UTF8终端是 Windows 自带命令行时切到 UTF-8 用 chcp 65001但要注意这个设置会让部分命令输出错位。我实际更推荐直接用支持 UTF-8 的终端工具省掉这套切换的心智负担。字符集问题一旦同时牵扯服务端、客户端、终端三层排查起来就很费时间所以 ob10 的启动脚本里必须固定写死一套 NLS_LANG不允许每台机器各设各的。4.4 ORA-01017密码正确却提示用户或口令无效现象应用报 ORA-01017: invalid username/password; logon denied但 DBA 用工具连接同一账号却正常。原因连接池缓存了修改前的旧密码或者密码创建时用了双引号造成大小写敏感还有可能是多租户环境里用户名大小写不一致。解决先在本地测试库用工具验证密码本身正确再看应用配置里是否残留旧密码。密码含 或 / 这类特殊字符时连接字符串很容易解析错常见做法是给密码做转义或改用 tnsnames 别名绕开。Oracle 12c 之后默认用户名的 C## 前缀也经常被写错这个细节在多租户环境里要特别留意。4.5 连接数被打满ORA-12516 与 ORA-00020现象新增连接报 ORA-12516: TNS:listener could not find available handler或者 ORA-00020: maximum number of processes。原因数据库侧 processes 或 sessions 参数到达上限。很多时候不是并发真的高而是僵尸会话堆积应用重启后旧连接没断干净或者网络异常断开后服务端会话没被及时回收。解决先看资源使用率再清理会话最后才考虑调整参数SELECT resource_name, current_utilization, limit_value FROM v$resource_limit WHERE resource_name IN (processes,sessions);查出堆积会话后选具体需要清理的会话执行ALTER SYSTEM KILL SESSION sid,serial# IMMEDIATE;IMMEDIATE 表示立即中断回滚事务不要用它杀当前正在执行的连接。processes 是静态参数改完需要重启数据库所以别一上来就动参数先清会话往往立刻就能恢复。这 5 个坑放在一起看结论很清楚报错是表象配置漂移才是根因连接工具的把戏就是把漂移暴露出来。5. 把 ob10 变成团队标准工具从单条连接到批量巡检单条命令能连上只是起点让团队所有人都用同一套标准连接环境才是这类工具的真正价值。这一章讲怎么把零散命令收敛成可维护的工具目录再升级成批量巡检能力。5.1 先收敛配置一个目录装下所有连接信息我维护这类工具时目录结构固定如下/opt/ob10/ ├── instantclient/ # Instant Client 运行时 ├── network/admin/ # tnsnames.ora 所在目录 ├── conf/instance.list # 实例清单CSV 格式 ├── sql/check_instance.sql # 巡检 SQL ├── bin/check.sh # 巡检脚本 └── logs/ # 巡检输出目录Instant Client 原样放进 instantclient 目录tnsnames.ora 和实例清单放在 conf 下脚本只读 conf不让人在各台机器上改来改去。整个目录提交到版本管理新增环境就是新增一行 CSV。这个收敛动作能直接消灭两类问题一是“我本地能连你那台不行”二是“谁在服务器上改过 tnsnames.ora”。把配置从人的脑子里拿出来放进目录和版本历史争议自然就少了。5.2 批量巡检脚本一个命令检查 20 个实例实例多了以后手工一个个连不现实。我一般会维护一份 instance.list每行一个实例然后让脚本批量跑#!/bin/bash # 用法: ./bin/check.sh # 逐行读取 主机,端口,服务名,用户,口令写 CSV 报表 INSTANCE_LIST/opt/ob10/conf/instance.list REPORT/opt/ob10/logs/check_$(date %Y%m%d_%H%M).csv echo host,service,status,version,err $REPORT while IFS, read -r host port service user pass; do conn//$host:$port/$service out$(timeout 15 sqlplus -S -L $user/$pass$conn SQL set pagesize 0 set feedback off SELECT status || , || version FROM v$instance; exit; SQL ) # 退出码为 0 且输出包含 OPEN 才算真正可用 if [ $? -eq 0 ] echo $out | grep -q OPEN; then echo $host,$service,OK,$out, $REPORT else echo $host,$service,FAIL,-,$out $REPORT fi done $INSTANCE_LIST cat $REPORTtimeout 15 是刻意加的监听器不响应时sqlplus 可能长时间挂着有了它脚本最多等 15 秒。退出码为 0 只代表 sqlplus 启动成功SQL 执行出错时退出码也可能为 0所以还要再加 grep 检查输出里有没有 OPEN。严格一点的脚本会在 SQL 文件头加 WHENEVER SQLERROR EXIT SQL.SQLCODE让 SQL 错误直接变成非零退出码。注意生产环境不要把明文口令写进脚本。常见做法是巡检账号使用只读权限口令改用 Oracle Wallet 或外部口令存储脚本里只保留连接用户名。5.3 一条 JDBC URL 串起开发与运维开发环境通常不用 Instant Client而是直接走 JDBC Thin 驱动。问题在于两边写的连接串不一致开发写 SID 格式DBA 写服务名格式排查时各说各话。统一成服务名格式后一条 URL 就能同时被工具和程序识别jdbc:oracle:thin://192.0.2.20:1521/ORCL_APP这段 URL 里的 ORCL_APP必须和 tnsnames.ora 里的 SERVICE_NAME 是同一个值。我见过不少应用层报“无法连接”DBA 拿工具一测正常最后发现开发把服务名写成了另一个库的名字。把服务名作为唯一事实来源两边共用这类各说各话的排错才能终止。6. 让 ob10 进入自动化免交互脚本与更安全的连接方式6.1 免交互脚本连接、执行、退出一步到位日常巡检和定时取数都不应该打开交互界面。sqlplus 支持直接执行脚本后退出配一个简单的调用方式就能接进调度工具sqlplus -S app_user/app_password//192.0.2.30:1521/ORCL_APP /opt/ob10/sql/check.sql-S 关闭横幅输出 后面跟 SQL 文件路径。如果希望 SQL 出错时脚本也失败在 SQL 文件第一行加 WHENEVER SQLERROR EXIT SQL.SQLCODE。定时任务跑起来后每天早晨先看报表再决定要不要人工介入。6.2 用 Wallet 管好连接凭据脚本里出现明文口令始终是隐患。我认为更稳妥的方向是 Oracle Wallet它把连接凭据收进加密钱包文件脚本里不再出现口令。先建钱包目录orapki wallet create -wallet /opt/ob10/wallet -pwd 示例口令 -auto_login生产环境的钱包和证书通常由数据库安全角色统一签发拿到钱包文件后设置 SQLNET.WALLET_OVERRIDETRUE连接命令就可以改成只写用户名甚至完全不写口令。我自己的教训是某次上线前巡检连一个测试库失败本地手工又能连上最后查到是 CI 环境上的 TNS_ADMIN 指向了旧配置目录。从那以后我把所有连接参数和自检命令一起放进版本管理任何环境跑之前先执行一行自检脚本确认 TNS_ADMIN 指向唯一。工具的价值在于把不确定变成确定希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

Android Studio内置AI助手Gemini实战:小团队开发效率提升15%的落地经验

Android Studio内置AI助手Gemini实战:小团队开发效率提升15%的落地经验

去年年初,我们团队做了一个很直接的决定:把 Android Studio 内置的 AI 助手 Gemini 正式写进日常开发流程。不是什么大厂前沿探索,就是一个小团队想把手头这点人力榨得更干净一点。一个季度跑下来,从需求到提测的交付速率实实在在…

📅 2026/10/11 16:16:44
嘉兴家装地暖安装哪家公司做得好,杭州永耀环境工程实力参考

嘉兴家装地暖安装哪家公司做得好,杭州永耀环境工程实力参考

嘉兴地处江南水乡,冬季湿冷入骨,近年来随着生活品质提升,全屋地暖逐渐从 luxury 配置变为不少家庭装修清单里的标配项。尤其是家有孕妇、婴幼儿的家庭,对地暖系统的环保性、安全性和温度均匀度要求更高;预算充足的业主则更关注系统…

📅 2026/10/11 16:16:44
Flutter isolate_agents鸿蒙化适配实战:并发调度与消息传递的迁移

Flutter isolate_agents鸿蒙化适配实战:并发调度与消息传递的迁移

聊 Flutter 并发,几乎绕不开 isolate。大多数项目写到后面都会有这样的感受:Isolate.spawnSendPort自己手工搭通信实在太累,消息协议、错误传递、资源回收全要自己管,代码很快就散成一地。isolate_agents这个库的价值就在于把“跑…

📅 2026/10/11 16:16:44
MORE NEWS

更多资讯

📰

IIS短文件名扫描实战:从8.3命名规则到工具包使用与避坑

简介:本资源聚焦 IIS 短文件名泄露这一经典 Web 安全检测场景,面向渗透测试初学者、安全运维人员及 CTF 参赛者,用于校验目标站点是否存在短文件名枚举风险。包内同时提供 Python 与 Java 两套实现,并附带环境包下载地址&#xff…

📰

Redis延时队列+Swoole多进程:PHP订单超时关闭实战

简介:这份资源面向PHP后端开发者与消息队列学习者,提供一套基于Redis延时队列与Swoole多进程模型构建的高并发消费端实现,可用于订单超时关闭、定时任务触发等需要延迟处理的业务场景。压缩包为zip格式,大小约1.66MB,内…

📰

Fiddler抓包实战:从HTTPS解密到弱网模拟,解决联调难题

打开Fiddler的那一瞬间,很多人以为这只是个“看请求”的小工具,但真正用熟之后你会发现,它其实是排查问题时的第一现场。前几天帮一个同事定位接口偶发超时的问题,前端说后端慢,后端说网关在重试,扯了半小时…

📰

Fiddler抓包实战:从代理原理到HTTPS解密与接口调试

提到抓包工具,很多搞开发、做测试的朋友第一个想到的肯定是Fiddler。我在不同项目里用它做接口联调、移动端调试、性能分析,加起来也有好多年了。有人会把名字写成Fidder,其实官方拼法是Fiddler,但大家都知道说的是同一个工具。简…

📰

微博情感分析系统全拆解:从爬虫采集到可视化呈现

简介:基于微博情感分析系统的毕业设计项目,面向计算机相关专业毕业生及有Python基础的实践者,完整呈现从微博数据获取、文本预处理到多种分类器训练与评估的工程链路。压缩包共71个文件,以31个Python脚本为核心,搭配15…

📰

基于Spark的电影推荐系统:ALS算法实战与毕设避坑指南

简介:一份基于Spark的电影推荐系统设计与实现资料包,面向大数据与推荐系统方向的学生、毕业设计者及自学开发者。资源以docx论文为核心,完整呈现从绪论、开发技术到系统设计、实现与测试的规范流程,涵盖课题背景、研究现状、技术选…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬