登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
读发布!设计与部署稳定的分布式系统(第2版)笔记02_停 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记02_停飞的代码异常
[ 复制链接 ]
韶又彤
2025-10-5 19:32:01
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
1. 以前“计划内的停机”很正常,现在则不被接受
2. 高可用性架构
2.1. CF系统不会遇到任何常见的单点失效问题
2.1.1. 硬件的每一部分都有冗余
2.1.1.1. CPU
2.1.1.2. 驱动器
2.1.1.3. 网卡
2.1.1.4. 电源
2.1.1.5. 网络交换机
2.1.1.6. 风扇
2.1.2. 为了防止某个机架受到损坏或破坏,服务器甚至被分散安装到不同的机架上
2.1.3. 如果发生火灾、洪水、炸弹袭击,位于48千米外的第2个机房可以随时把系统接管过去
3. 集群配置的常见问题
3.1. 没有足够的心跳
3.2. 心跳数据和生产数据由相同的交换机传输
3.3. 服务器设置为使用物理IP地址而不是虚拟IP地址
3.4. 设计的软件包之间混乱的依赖关系
4. 遭遇停机
4.1. 首要的任务都是恢复服务
4.2. 要先恢复服务,之后才是调查原因
4.2.1. 数百种疾病都能引起发烧
4.2.2. 为了判断可能的病因,需要进行化验或观察,了解更多信息
5. 事后分析
5.1. 谁最后动的就赖谁
5.1.1. post hoc, ergo propter hoc
5.1.2. 由于在数据库故障切换和维护之后,系统很快就失效了,因此疑点自然聚焦在故障切换操作上
5.2. 可靠的线索
5.2.1. 在停机事故发生时复制下来的服务器日志
5.2.1.1. 软件事故的事后分析实际上更难完成,因为事件结束了,没有留下可供分析的实物
5.2.2. RMI使得跨机器之间的通信方式就像在本机内部通信,但这种方式无法为通信调用设置超时时间,所以有一定的风险
5.2.2.1. 调用方很容易被其调用的远程服务器中的问题拖垮
5.3. 不可靠的线索
5.3.1. 人们对所见之事的陈述
6. 原因
6.1. JDBC规范允许java.sql.Statement.close()抛出一个SQLException异常,所以代码必须处理该异常
6.1.1. 如果在关闭statement时抛出异常,则数据库连接不会被关闭,从而导致资源泄漏
6.1.2. 这个异常在正常情况下几乎是不会被抛出来的
6.1.2.1. 当Oracle驱动程序在遇到IOException的情况下尝试关闭数据库连接时,例如执行数据库故障切换,SQLException异常就会抛出
6.1.2.2. 在执行该statement语句进行一些网络I/O操作时,会抛出SQLException异常。而在关闭该statement语句时也会抛出SQLException异常,因为驱动程序会尝试告诉数据库服务器释放与该语句相关的资源
6.2. 假设JDBC连接是在故障切换之前创建的
6.2.1. 当数据库服务器执行故障切换时,用于创建连接的数据库服务器IP地址将从一台主机变成另一台主机,但TCP连接的当前状态不会将数据库主机地址转变为第二个主机地址
6.2.2. 任何对套接字的写入操作,最终都会抛出一个IOException异常
6.2.3. 意味着资源池中的每个JDBC连接都是能引发事故的“地雷”
6.3. 被迫停飞的原因只是一个未被捕获的SQLException异常
7. 预防管用吗
7.1. 指望着每一个像这样的软件缺陷最终都能被揪出来,就是天方夜谭
7.2. 除非其中一位代码评审员知道Oracle JDBC驱动程序的内部实现细节,或者代码评审团队对每个Java方法都花费几个小时来评审,否则是不会发现的
7.3. 只有在知道问题的情况下,编写发现问题的测试才会变得简单
7.3.1. 在定位了问题之后,该团队在压力测试环境中进行了测试,确实重现了同样的差错
7.4. 系统中的一个软件缺陷可能会传播到所有其他受影响的系统中
7.4.1. 每个企业内部都有相互关联和相互依赖的系统
7.4.2. 不能允许软件缺陷导致一连串的系统失效
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
代码
停飞
笔记
2版
系统
相关帖子
Flink学习笔记:整体架构
凌晨3点,代码"完美"却报错?你需要一位"数字法医"
如何通过无代码平台构建高效智能体 — AgenticHub的革命性创新
FFmpeg开发笔记(九十一)基于Kotlin的Android直播开源框架RootEncoder
带vip功能的一个网盘系统
go net/http 学习笔记
html自动跳转代码
移动端跳转代码
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC Software Developer
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Flink学习笔记:整体架构
0
234
越蔓蔓
2025-12-04
业界
凌晨3点,代码"完美"却报错?你需要一位"数字法医"
0
920
甄婉丽
2025-12-05
安全
如何通过无代码平台构建高效智能体 — AgenticHub的革命性创新
1
618
搜娲瘠
2025-12-05
业界
FFmpeg开发笔记(九十一)基于Kotlin的Android直播开源框架RootEncoder
0
443
钤凑讪
2025-12-06
程序
带vip功能的一个网盘系统
1
25
新程序
2025-12-06
业界
go net/http 学习笔记
0
841
赴忽
2025-12-07
代码
html自动跳转代码
0
7
新程序
2025-12-07
代码
移动端跳转代码
0
10
新程序
2025-12-07
安全
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC
0
102
尸酒岐
2025-12-07
安全
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC Software Developer
0
477
堵赫然
2025-12-07
回复
(3)
拼匍弦
2025-10-25 00:50:32
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
骛扼铮
2025-11-15 01:29:57
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享
准挝
前天 04:05
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
粹脍誊
昨天 09:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
韶又彤
昨天 09:47
关注
0
粉丝关注
16
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845355
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多