在项目正式上线之前,我们通常需要通过压测来评估当前系统能够支撑的请求量、排查可能存在的隐藏bug,同时了解了程序的实际处理能力能够帮我们更好的匹配项目的实际需求,节约资源成本。
压测相关术语
响应时间(RT) :指系统对请求作出响应的时间.
吞吐量(Throughput) :指系统在单位时间内处理请求的数量
QPS每秒查询率(Query Per Second) :“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS(TransactionPerSecond):每秒钟系统能够处理的交易或事务的数量
并发连接数:某个时刻服务器所接受的请求总数
压力测试工具abab全称Apache Bench,是Apache自带的性能测试工具。使用这个工具,只须指定同时连接数、请求数以及URL,即可测试网站或网站程序的性能。
通过ab发送请求模拟多个访问者同时对某一URL地址进行访问,可以得到每秒传送字节数、每秒处理请求数、每请求处理时间等统计数据。
命令格式:
1ab [options] [http://]hostname[:port ...
技术学习
未读数据库数据安全在这里我们讨论如何对用户输入的数据(密码)进行加密,避免成为明文存入数据库中
加密解密在实际开发中应用比较广泛,常用加解密分为:“对称式”、“非对称式”和”数字签名“。
对称式:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。具体算法主要有DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。
**非对称加密(公钥加密)**:指加密和解密使用不同密钥的加密算法,也称为公私钥加密。具体算法主要有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
数字签名:数字签名是非对称密钥加密技术与数字摘要技术的应用。如MD5、SHA1、HMAC等, 主要用于验证,防止信息被修改, 如:文件校验、数字签名、鉴权协议;
HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写,
hmac算法是加密的hash算法,它需要一个hash算法(比如sha256、md5等)和一个密匙key,在hash计算的过程中将密匙key混入,产生一个和原来hash算 ...
Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变。
什么是泛型泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。ーー换句话说,在编写某些代码或数据结构时先不提供值的类型,而是之后再提供。
泛型是一种独立于所使用的特定类型的编写代码的方法。使用泛型可以编写出适用于一组类型中的任何一种的函数和类型。
为什么需要泛型假设我们需要实现一个反转切片的函数——reverse。
1234567891011func reverse(s []int) []int { l := len(s) r := make([]int, l) for i, e := range s { r[l-i-1] = e } return r}fmt.Println(reverse([]int{1, 2, 3, 4})) // [4 3 2 1]
可是这个函数只能接收[]int类型的参数,如果我们想支持[]float64类型的参数,我们就需要再定义一个reverseFloat ...
基于 Ubuntu Server 20.04 LTS 64bit
Nginx卸载与安装安装Nginx 在默认的 Ubuntu 源仓库中可用。想要安装它,运行下面的命令:
12sudo apt updatesudo apt install nginx
一旦安装完成,Nginx 将会自动被启动。你可以运行下面的命令来验证它:
1sudo systemctl status nginx
输出类似下面这样:
1234 nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-02 20:25:43 UTC; 13s ago...
配置防火墙现在你已经在你的服务器上安装和运行了 Nginx,你需要确保你的防火墙(以及 = ...
日志清理脚本gpt_clean_logs.sh
1234567#!/bin/bash# 指定日志目录LOG_DIR="/root/gpt_service_logs"# 定期清理10天前的日志文件find "$LOG_DIR" -name '*.log' -type f -mtime +7 -exec rm {} \;
定时任务脚本gpt_start_service.sh
1234567891011121314#!/bin/bash# 指定日志目录LOG_DIR="/root/gpt_service_logs"# 检查是否存在标志文件if [ ! -f "$LOG_DIR/service_started.flag" ]; then # 如果标志文件不存在,则启动服务 cd /root/ChatGLM3/openai_api_demo python openai_api.py > "$LOG_DIR/$(date '+%Y-% ...
经验教程
未读安装redis1docker pull redis
1mkdir -p /usr/local/app/redis/conf /usr/local/app/redis/data /usr/local/app/redis/logs
1vim /usr/local/app/redis/conf/myredis.conf
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101# bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1#bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass yangming666@redistimeou ...
经验教程
未读Ubuntu下安装Docker及MySQL(一遍过)| 青训营笔记这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
一键安装Docker1curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
云服务器(Ubuntu)安装Docker1.先卸载可能存在的旧版本1sudo apt-get remove docker docker-engine docker-ce docker.io
2. 更新apt包索引1sudo apt-get update
3.使用apt安装一些允许通过HTTPS才能使用的软件包:
1sudo apt install apt-transport-https ca-certificates curl software-properties-common
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
1curl -fsSL https://mirrors.aliyun.com/docke ...
[TOC]
笔记脚手架文件结构├── node_modules
├── public
│ ├── favicon.ico: 页签图标
│ └── index.html: 主页面
├── src
│ ├── assets: 存放静态资源
│ │ └── logo.png
│ │── component: 存放组件
│ │ └── HelloWorld.vue
│ │── App.vue: 汇总所有组件
│ │── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件
├── package.json: 应用包配置文件
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件
关于不同版本的Vue
vue.js与vue.runtime.xxx.js的区别:
vue.js是完整版的Vue,包含:核心功能 + 模板解析器。
vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器 ...
前端Vue核心开发一个前端模块可以概括为以下几个步骤:(1)写静态页面、拆分为静态组件;(2)发请求(API);(3)vuex(actions、mutations、state三连操作);(4)组件获取仓库数据,动态展示
1、vue文件目录分析public文件夹:静态资源,webpack进行打包的时候会原封不动打包到dist文件夹中。
pubilc/index.html是一个模板文件,作用是生成项目的入口文件,webpack打包的js,css也会自动注入到该页面中。我们浏览器访问项目的时候就会默认打开生成好的index.html。
src文件夹(程序员代码文件夹)
1234assets: 存放公用的静态资源components: 非路由组件(全局组件),其他组件放在views或者pages文件夹中App.vue: 唯一的跟组件main.js: 程序入口文件,最先执行的文件
babel.config.js: 配置文件(babel相关)package.json: 项目的详细信息记录package-lock.json: 缓存性文件(各种包的来源)
2、项目配置2.1 项目运行,浏览 ...
小程序-起步小程序简介小程序与普通网页开发的区别:
第一个小程序1.点击注册按钮使用浏览器打开 https://mp.weixin.qq.com/ 网址,点击右上角的“==立即注册==”即可进入到小程序开发账号的注册流程,主要流程截图如下:
2.选择注册账号的类型(==可以选择测试号先试试水==)
3.填写账号信息
4.提示邮箱激活
5.点击链接激活账号
6.选择主体类型
7.主体信息登记
8.获取小程序的 AppID
安装开发者工具推荐下载和安装最新的稳定版(Stable Build)的微信开发者工具,下载页面的链接如下:(尽量不要安装在C盘就行)
https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html
创建小程序项目(扫码登录后)1.点击”加号“按钮
2.填写项目信息
3.项目创建完成
小程序的代码构成—项目结构1.了解项目的基本组成结构
① pages 用来存放所有小程序的页面② utils 用来存放 ...