登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
读发布!设计与部署稳定的分布式系统(第2版)笔记06_用 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记06_用户
[ 复制链接 ]
荦绅诵
前天 12:50
1. 系统的人类用户天生就具备进行创造性破坏的本事
1.1. 用户会消耗内存
1.2. 用户会做奇怪和随机的事情
1.2.1. fuzzing工具箱、基于属性的测试或模拟测试
1.3. 恶意用户总是存在的
1.3.1. 灾祸总会发生,坏人肯定存在
1.4. 用户会合伙对付你
2. 难伺候的用户
2.1. 通常就是想挣这些挑剔用户兜里的钱
2.2. 提高用户转化率或许能让公司的损益表更好看些,但这确实给系统增加了实现难度
2.3. 最好针对这些难伺候的用户积极地进行测试
2.3.1. 确定系统开销最大的事务,然后将这些事务的份额增加1~3倍
2.3.2. 系统平时承受的平均压力,肯定会小于上述负载测试产生的压力
2.3.3. 单单构建系统并处理系统最昂贵的事务这一件事,就会在硬件上多花费10倍的成本
3. 不受欢迎的用户
3.1. cookie是一种明智的选择
3.1.1. 未加密的cookie数据可能会被恶意顾客操纵
3.1.2. 安全性要求cookie不能包含实际数据,否则就必须加密
3.1.3. cookie开始用于小块数据,只能用持久cookie标记用户,或用临时cookie识别会话
3.2. 恶意用户
3.2.1. 真正有“才华”的黑客
3.2.1.1. 高级持久威胁
3.2.2. 脚本小子
3.2.2.1. 数量庞大而非常危险
4. 容量
4.1. 是指在给定工作负载下,系统既能保持提供可接受的性能,又能承受得住的最大吞吐量
4.2. 不断增长的用户流量最终将超过系统的容量
4.3. 裂纹在压力的作用下总是会蔓延得更快
5. 堆内存
5.1. 放入会话的每个对象都位于内存中,占用着能为其他用户提供服务的宝贵字节
5.1.1. 最好尽可能少地保留内存中的会话
5.1.2. 对于放入会话的每一份数据,都要考虑它是否可能永远不会再使用
5.1.3. 这些数据可能在接下来的30分钟里白白地占用内存,并使系统面临危险
5.2. 如果情况非常糟糕,日志系统甚至可能无法记录错误
5.3. 如果系统没有创建日志事件的内存,则不会记录任何内容
5.4. 存在这种可能,所以除了日志文件抓取之外,应该还需要做外部监控
5.5. 弱引用
5.5.1. 能够在内存富裕时保存会话内容(也就是在内存中),在内存紧张时自动节约内存
5.5.2. 垃圾收集器需要回收内存之前,弱引用都可以持有另一个对象,后者称为前者的有效载荷
5.5.2.1. 当该对象的引用只剩下软引用时,则软引用就可以被回收
5.5.2.2. 在创建弱引用对象时,可以将大型或昂贵的对象作为其有效载荷
5.5.2.3. 垃圾回收对象都是有效载荷,而不是弱引用本身
5.5.3. C#中叫System.WeakReference
5.5.4. Java中叫java.lang.ref.SoftReference
5.5.5. Python中叫weakref
5.5.6. 当内存不足时,垃圾收集器可以回收任何弱可达对象
5.5.7. 弱引用是应对不断变化的内存环境的有用方式,但也确实增加了复杂性
6. 堆外内存和主机外内存
6.1. 将内存分配给不同的进程
6.1.1. 不要将它放在堆内,即不要放在服务器进程的地址空间内,而是将其移交给其他进程
6.2. Memcached就是使用这种方法的一个很好的工具,它本质上是一个内存中的键-值存储,可以将其放在不同的机器上,也可以将其散布在多台机器上
6.3. Redis是将内存移出进程的另一个流行工具。它是一种快速的“数据结构服务器”,其定位介乎缓存和数据库之间
6.4. 在可寻址的内存空间和内存访问延迟之间进行权衡
6.5. 存储器层次根据大小和距离排列,寄存器是最快和最接近CPU的,其次是缓存,然后是局部存储器、磁盘、磁带等
6.6. 网络变得相当快——访问“别人内存”的速度快于访问本地磁盘的速度
6.6.1. 应用程序最好通过远程调用获取一个值,而不是从存储中读取值
6.6.2. 局部存储器仍然比远程存储器更快
6.6.3. 一对矛盾
7. 服务器上的套接字
7.1. 查看TCP数据包的格式,就能看到端口号长16位,这表示端口号最大只能到65535
7.2. 互联网数字分配机构的建议范围是49152~65535
7.2.1. 服务器最多可以打开16383个连接
7.2.2. 可以将端口范围扩展为1024~65535
7.2.2.1. 最多可以有64511个连接
7.3. 虚拟IP地址
7.3.1. 操作系统将多个IP地址绑定到同一个网络接口
7.3.2. 每个IP地址都有自己的端口号范围
7.3.3. 要处理上百万个连接,总共只需要16个IP地址
7.3.3.1. 需要很多内核缓冲区
7.4. 已经关闭的套接字
7.4.1. 在应用程序代码关闭一个套接字后,TCP协议栈会多次改变其终结状态
7.4.2. TIME_WAIT
7.4.2.1. 可以调小TIME_WAIT间隔,尽快恢复使用这些端口
7.4.3. bogon是指游荡的数据包
7.4.3.1. 互联网上的bogon是一个真实但影响较小的问题
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
发布
设计
部署
定的
分布式
相关帖子
读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行
Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
OpenAI发布提示词集
DeploySharp开源发布:让C#部署深度学习模型更加简单
Kubernetes Deployment:部署与管理应用指南
如何设计一条稳定的应用交付流程?|云效工程师指北
产品经理必看:原型设计工具三大能力解析(交互/AI/素材库)
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行
0
49
翳舀
2025-10-06
科技
Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
0
502
锷稠
2025-10-06
科技
OpenAI发布提示词集
0
995
史穹逊
2025-10-06
业界
DeploySharp开源发布:让C#部署深度学习模型更加简单
0
511
徙办
2025-10-06
业界
Kubernetes Deployment:部署与管理应用指南
0
746
些耨努
2025-10-06
安全
如何设计一条稳定的应用交付流程?|云效工程师指北
0
53
存叭
2025-10-07
安全
产品经理必看:原型设计工具三大能力解析(交互/AI/素材库)
0
825
普料飕
2025-10-09
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
荦绅诵
前天 12:50
关注
0
粉丝关注
22
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
富账慕
10013
孙淼淼
9995
匝抽
9986
4
柴古香
9993
5
凌彦慧
9994
6
染悄
9981
7
崔瑜然
9984
8
敖可
9991
9
慢秤
9979
10
迎脾
9979
查看更多