登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
读发布!设计与部署稳定的分布式系统(第2版)笔记25_互 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记25_互联层之路由和服务
[ 复制链接 ]
訾颀秀
2025-6-8 22:23:46
1. 控制请求数量
1.1. 这个世界可以随时摧毁我们的系统
1.1.1. 要么拒绝工作
1.1.2. 要么扩展容量
1.1.3. 没有人会在与世隔绝的环境中使用服务,现在的服务大多必须处理互联网规模的负载
1.2. 系统的每次失效,都源自某个等待队列
1.3. 每个请求都会在它所经过的每一层上占用一个套接字,当请求被实例处理后,该实例就临时少了一个处理其他新请求的套接字
1.4. 可用套接字数量与服务每秒可以处理的请求数量之间存在一定关系,这取决于请求处理的持续时间
1.5. 服务完成请求处理的速度越快,其可处理的吞吐量就越高
1.6. 以太网本质上就是一个串行协议
1.6.1. 把数据包“放到”导线上需要时间,在端口繁忙时,任何待发送的数据包都必须排队
1.6.2. 当写入缓冲区已满时,TCP协议栈将不会接受任何新的写入,并且write调用将被阻塞
1.7. 服务器套接字上的“监听队列”
1.7.1. 如果监听队列已满,那么尝试连接的客户端会进行一系列的重试,最终放弃连接
1.8. 甩负载
1.8.1. 是控制传入请求数量的首要方式
1.8.2. 在高负载情况下最好把那些无法及时完成的工作“挡在门外”
1.8.3. 当套接字监听队列已满时,就可以快速进行甩负载,快速拒绝胜于慢速超时
1.8.4. 尽可能在网络的边缘拒绝额外的请求
1.8.4.1. 能尽早甩负载,从而避免在拒绝请求之前就已经占满多个层级上的资源
1.8.4.2. 请求进入系统越深,占用的资源就越多
1.8.5. 提供健康状况检查,允许负载均衡器保护应用程序
1.8.6. 服务可以通过度量自身响应时间,来协助解决高负载的问题
1.8.6.1. 检查自身的运维状态,查看是否能及时回复请求
1.8.7. 在因响应时间过长引发访问重试时,开始拒绝请求
1.8.8. 服务也应该有相对较短的监听队列
1.8.8.1. 每个请求都会在监听队列中等待一些时间,并花一些时间进行处理,称这两个时间之和为“驻留时间”
1.8.8.2. 监听队列是串行的,而处理是多线程的,所以排队时间最终会比处理时间要长
1.8.9. 需要知道该服务是直接面向互联网(适用于所有实用场景,请求数量无限),还是仅向内部开放(请求数量有限)
1.9. TIME WAIT
1.9.1. 关闭的套接字会在TIME_WAIT状态下保持一段时间,来让所有在互联网上游荡的“掉队”的包超时,或在其到达时被丢弃
1.9.2. 由于当前客户端并没有发送这些数据,因此导致TCP流不再同步。这样的数据包就被称为bogon
1.9.2.1. IME_WAIT则可以防止系统出现这种情况
2. 网络路由
2.1. 服务器必须要知道使用哪个接口才能访问特定的目标IP地址
2.1.1. 服务器的前端网络接口接入一个虚拟局域网与Web服务器通信
2.1.2. 服务器的后端网络接口接入另一个虚拟局域网与数据库服务器通信
2.1.3. 当涉及远程服务时(可能是第三方服务),路由就会变得更复杂
2.2. 现代操作系统力图使路由自动发生且不可见
2.2.1. 当一台服务器启动其主网卡时(只要操作系统认定其为主网卡),会将该网卡的主IP地址当作其“默认网关”,并将这个网关作为这台主机的路由表中的第一个条目
2.3. 总会出现的错误比间歇性的成功要好得多
2.4. 静态路由定义
2.4.1. 网络管理员对外都不赞同使用静态路由,但有时这是唯一可行的方法
2.5. 软件定义网络
2.5.1. 与虚拟化基础设施和基于容器的基础设施密切相关
2.5.2. 容器和虚拟机使用虚拟IP地址、虚拟局域网标记和虚拟交换机来创建一种“网络上的网络”
2.5.3. 数据包仍然在相同的网线上流动,但主机的IP地址不再牵涉其中,这就实现了虚拟交换机在物理交换机之外独立运维
2.6. 错误地配置路由,不仅会降低系统的可用性,还会泄露客户数据
2.7. 所有远程系统连接都应该使用电子表格或数据库来记录目标主机名字、地址和所需路由
2.7.1. 有人会需要这些信息来编写防火墙规则
3. 发现服务
3.1. 组织有太多的服务,使用DNS管理
3.2. 部署环境高度活跃
3.3. 调用方至少需要知道一个IP地址,才能访问某个特定服务
3.4. 可以在分布式数据存储(例如Apache ZooKeeper或etcd)上创建服务发现机制
4. 迁移虚拟IP地址
4.1. 虚拟IP地址意味着一个IP地址不会与一个以太网MAC地址严格绑定
4.2. 负载均衡器会使用虚拟IP地址将多个服务(每个都有自己的IP地址)复用到数量较少的物理接口上
4.3. IP地址的迁移通常用于通过主动方式和被动方式实现的数据库集群
4.3.1. 不能迁移应用程序内存中的状态
4.3.2. 所有非持久化的交互状态都将丢失
4.3.3. 任何通过虚拟IP地址调用数据库的应用程序,都应做好在发生此类故障转移时收到SQLException的“心理准备”
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
2版
路由
层之
互联
笔记
相关帖子
CMake构建学习笔记22-libxml2库的构建
[信号与系统个人笔记]第三章 连续时间信号与系统的频域分析
VTK开发笔记(三):熟悉VTK开发流程,编写球体,多半透明球体Demo
Power BI学习笔记-周报销售数据分析
CMake构建学习笔记23-SQLite库的构建
解决大型 PHP 应用中 URL 路由 挑战模块化路由系统
CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS
CMake构建学习笔记25-SpatiaLite库的构建
3月22日第2版密码1
工业互联新纪元 | ECE-584网关实现EtherCAT与PROFINET无缝通讯
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
CMake构建学习笔记22-libxml2库的构建
0
741
饮邺谲
2025-08-29
业界
[信号与系统个人笔记]第三章 连续时间信号与系统的频域分析
0
632
汇干环
2025-08-31
业界
VTK开发笔记(三):熟悉VTK开发流程,编写球体,多半透明球体Demo
0
806
邰怀卉
2025-09-01
业界
Power BI学习笔记-周报销售数据分析
0
840
恐肩
2025-09-01
业界
CMake构建学习笔记23-SQLite库的构建
0
427
涣爹卮
2025-09-02
业界
解决大型 PHP 应用中 URL 路由 挑战模块化路由系统
0
517
硫辨姥
2025-09-03
业界
CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS
0
702
左丘平莹
2025-09-03
业界
CMake构建学习笔记25-SpatiaLite库的构建
0
101
虽裘侪
2025-09-04
程序
3月22日第2版密码1
0
27
新程序
2025-09-04
安全
工业互联新纪元 | ECE-584网关实现EtherCAT与PROFINET无缝通讯
0
319
羔迪
2025-09-04
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
訾颀秀
2025-6-8 22:23:46
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多