背景
之前遇到这样一个场景:某个Web项目,业务中需要上传特别大的文件(>20G)以及特别多文件的文件夹(>10,000个)。如果选用浏览器直接上传会遇到以下问题:
- 离开页面上传中断
- 出错后无法断点续传
- 无法暂停任务
一旦失败就需要重传,时间成本极高,浏览器直接上传的用户体验极差。这种场景就需要用到本地上传器:由前端唤起一个本地上传程序,将文件拷贝到远端的的SMB服务器中,本地程序通过HTTP接口同步上传状态。上传业务流程是这样的:
由于HTTP的无状态性,Web开发中最基本的维护页面状态的手段就是Cookie和Session,其中Cookie存在前端,Session存在后端。
Chrome开发者工具的Application中除了Cookie之外还有其他几种存储:
服务运行的过程中就会不断产生日志,日志的常见用途有:
对于单点服务的日志只需要用awk
,grep
命令即可获取需要的信息,但在分布式系统中,管理分布在各个节点的日志就会变得很麻烦,需要有一个系统采集各个节点的日志几种储存。
整理多而杂的常用工具,以备日后查找用
route
用于查看路由表$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default DESKTOP-N0ED40G 0.0.0.0 UG 100 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.19.80.0 0.0.0.0 255.255.240.0 U 100 0 0 eth0Destination
,Gateway
,Genmask
分别表示目的网络号,网关,子网掩码。例如要访问172.19.89.119
,按行与Genmask
向与,结果是172.19.80.0
,与第三行Destination
相匹配,所以选择第三行配置。如果访问某个IP找不到匹配的路由项,则选default
(第一行)。
Flags
中U
表示used
,G
表示Gateway
,H
表示Host
。Iface
表示路由对应的网卡。
添加一条路由:route add -net 10.0.0.0/24 dev ens160