0%

背景

之前遇到这样一个场景:某个Web项目,业务中需要上传特别大的文件(>20G)以及特别多文件的文件夹(>10,000个)。如果选用浏览器直接上传会遇到以下问题:

  • 离开页面上传中断
  • 出错后无法断点续传
  • 无法暂停任务

一旦失败就需要重传,时间成本极高,浏览器直接上传的用户体验极差。这种场景就需要用到本地上传器:由前端唤起一个本地上传程序,将文件拷贝到远端的的SMB服务器中,本地程序通过HTTP接口同步上传状态。上传业务流程是这样的:


阅读全文 »

由于HTTP的无状态性,Web开发中最基本的维护页面状态的手段就是Cookie和Session,其中Cookie存在前端,Session存在后端。

Chrome开发者工具的Application中除了Cookie之外还有其他几种存储:

  • LocalStorage
  • SessionStorage
  • IndexedDB
  • Web SQL
阅读全文 »

服务运行的过程中就会不断产生日志,日志的常见用途有:

  • 查看某个时间段的错误原因
  • 分析某个接口的召回率
  • 记录接口的输入输出参数,在升级接口的时候做回归测试

对于单点服务的日志只需要用awkgrep命令即可获取需要的信息,但在分布式系统中,管理分布在各个节点的日志就会变得很麻烦,需要有一个系统采集各个节点的日志几种储存。

阅读全文 »

整理多而杂的常用工具,以备日后查找用

route

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 eth0

DestinationGatewayGenmask分别表示目的网络号,网关,子网掩码。例如要访问172.19.89.119,按行与Genmask向与,结果是172.19.80.0,与第三行Destination相匹配,所以选择第三行配置。如果访问某个IP找不到匹配的路由项,则选default(第一行)。

FlagsU表示usedG表示GatewayH表示HostIface表示路由对应的网卡。

添加一条路由:route add -net 10.0.0.0/24 dev ens160

阅读全文 »

crontab

Linux的crontab是系统自带的实现定时任务的模块,后台以守护进程的形式被systemd管理。crontab根据crontab表达式来配置一个定时任务,标准unix版本的crontab表达式是一个空格分割的5段字符串:分 时 日 月 星(分钟,小时,某日,某月,某年),一些其他的版本可能有7段:秒 分 时 日 月 星 年,此处以5段式表达式为准。

基本用法:crontab [-u user] { -l | -r | -e }root权限下-u可以指定他人的时程,不填默认设置自己的时程。

  • -e : 编辑器来设定时程表
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表
阅读全文 »