7 层协议


系统性能指标
QPS:Queries Per Second TPS:Transactions Per Second TPS: Response-time 并发数 系统同时处理的 request/事务数 吞吐量 一般取平均响应时间 单位时间内处理的请求量(通常由QPS与并发数决定); pv 页面被浏览的次数 即Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量
UV即Unique Visitor,独立访客数,指一天内访问某站点的人数,以cookie或者Token为依据。
VV即Visit View,访客访问的次数,用以记录所有访客一天内访问网站的次数。 访客的访问次数,
cpu密集型 线程数=cpu核数+1
i/o密集型 单核 1+(i/o耗时 / cpu耗时) 多核 (1+(i/o耗时 / cpu耗时))*核数
刷新 dns
ipconfig /flushdns
Vue 报错 error:0308010C:digital envelope routines::unsupported
set NODE_OPTIONS=--openssl-legacy-provider
性能指标
| 高并发 | 高性能 | 高可用 | |
|---|---|---|---|
| 指标 | qps(每秒点击率) | 响应时间 | 4 个 9(99.99) |
| 方案 | 负载均衡 流量漏斗 cdn 池化 | 缓存 异步 i/o(网络、数据、文件) 分库分表 | 集群 熔断 降级 限流 |
Termux
termux-setup-storage
termux-change-repo
postman
host = pm.collectionVariables.get("host");
console.log(host)
username = pm.collectionVariables.get("username");
console.log(username)
password = pm.collectionVariables.get("password");
console.log(password)
const postRequest = {
url: host+'/login',
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
},
body: "username="+username+"&password="+password+"&rememberMe=true"
};
pm.collectionVariables.unset("token");
pm.sendRequest(postRequest, (error, response) => {
pm.request.headers.remove("X-TOKEN");
if(!response||response['code']!==200||response['status']!=='OK'){
console.info(response)
return
}
if(error){
console.error(error)
return
}
data=response.json()['data']
if(!data){
return
}
token =data['token']
if(!token){
return
}
console.log('token =>',token)
pm.request.headers.add({
key: "X-TOKEN",
value: token
});
});cdn
nginx
用root属性指定的值是要加入到最终路径中的,匹配条件会拼接到路径中
用alias属性指定的值不需要加入到最终路径中
限流模块
limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 "leaky bucket"。 limit_req_conn 用来限制同一时间连接数,即并发限制
abs
abs -n 1000 -c 1000 -T "application/json" -H "application/x-www-form-urlencoded;charset=UTF-8" "xxxxxxx"
mqtt
qos 0 高频且不那么重要的数据,比如传感器数据,周期性更新,即使遗漏几个周期的数据也可以接受
qos 1 一些较为重要的数据,比如下达关键指令、更新重要的有实时性要求的状态等。
qos 2 既可以保证消息到达,也可以保证消息不会重复,
Qos Quality of Service
Last Will
retain
sendBeacon
navigator.sendBeacon('submit.php', data);
taskkill /f /t /im nginx.exe
文档网站生成
npm i docsify-cli -g
docsify init ./help
cd help
docsify serve .Quick Reference
https://quickref.hestudio.net/mqtt http
MQTT(Message Queuing Telemetry Transport)
http (Hypertext Transfer Protocol)
1、通信协议类型不同,MQTT是一个轻量级的发布/订阅系统,而HTTP是无状态的请求/响应协议。
2、数据传输效率不同,MQTT在网络带宽较低的环境中表现更好,而HTTP在传统的Web应用中更为普遍。
3、消息传递机制不同,MQTT支持离线消息和遗嘱消息,HTTP没有这些机制。
4、头信息大小不同,MQTT的头信息相对较小,而HTTP的头信息较大。
5、支持的功能不相同,HTTP支持更丰富的功能如内容协商、缓存等。
6、应用场景不同,MQTT适合物联网和移动应用,HTTP则广泛应用于传统的Internet应用。
rpc http
HTTP接口使用基于HTTP协议的URL传参调用,一种协议
RPC接口则基于远程过程调用,一种方法
单位换算
function transferNumber(n) {
const unit = [10000, 1];
const unit_check = [n >= 10000, n >= 0 && n < 10000];
const unit_value = unit_check.findIndex((element) => element) || 1;
console.log(unit_value);
return (n / unit[unit_value - 1]).toFixed(2);
}badge
npm install -g badge-maker项目代码统计
cloc
https://github.com/AlDanial/cloc
axios导出
import { axios } from '@/utils/request'
import { message } from 'ant-design-vue'
export async function exportRcp (parameter, name) {
message.config({
maxCount: 1
})
await axios({
url: 'xxxxx',
method: 'post',
params: parameter,
responseType: 'blob',
transformRequest: [function (data) {
message.loading('请求中,请稍后...', 1)
return data
}]
}).then(res => {
setTimeout(() => {
const blob = new Blob([res], {
type:
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
})
const a = document.createElement('a')
const href = window.URL.createObjectURL(blob)
a.href = href
a.download = (name) + '.xls'
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
window.URL.revokeObjectURL(href)
}, 1000)
}).catch(res => {
setTimeout(() => {
message.error('下载失败,请稍后再试', 1)
}, 1000)
})
}rel="noopener noreferrer"
<a href="https://www.baidu.com" target="_blank" rel="noopener noreferrer">链接文本</a>noopener:当链接的 target 属性设置为 “_blank” 时,它用于防止新打开的窗口能够访问原始页面的 window.opener 属性。这可以防止被打开的页面通过 window.opener 访问和操纵原始页面的数据和行为,从而提高安全性。
noreferrer:与 noopener 一起使用时,它还可以防止被打开的页面发送 Referer 头部信息。这可以防止被打开的页面揭示原始页面的 URL 信息,从而提高隐私性。
综上所述,rel=“noopener noreferrer” 是一种最佳实践,用于在新窗口中打开链接时提高安全性和隐私性。
wakatime
学习路线
https://objtube.github.io/front-end-roadmap/?ref=www.tboxn.com#/
