`替换brew.git:
cd “$(brew --repo)”
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
替换homebrew-core.git:cd “$(brew --repo)/Library/Taps/homebrew/homebrew-core”
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git`
- 再执行一次brew install wrk即可
使用Node.js连接mysql
================
- 先准备一个执行sql语句函数
`const mysql = require(‘mysql’);
const { MYSQL_CONF } = require(‘./config’);
const con = mysql.createConnection(MYSQL_CONF);//建立连接con.connect();//统一执行sql的方法function exec(sql) {
const promise = new Promise((resolve, reject) => { con.query(sql, (error, result) => {
if (error) {
reject(error);
} resolve(result); }); }); return promise;
}//关闭连接function kill() {
con.end();
}module.exports = { exec, kill };`
- 再准备一个配置文件 config.js(可以根据环境变量区分配置)
`//获取环境变量
const env = process.env.NODE_ENV; let MYSQL_CONF;
//开发环境的配置MYSQL_CONF = { host: ‘localhost’,
user: ‘root’,
password: ‘123456’,
port: ‘3306’,
database: ‘blog’,
socketPath: ‘/tmp/mysql.sock’,
};module.exports = { MYSQL_CONF };`
-
如上所示,跑起来
-
首先创建测试表
exec('CREATE TABLE IF NOT EXISTS TEST_WRITE(first_column INT , second_column VARCHAR(100));')
- 通过可视化工具Navicat可以看到表已经创建成功
开始模拟写入
======
- 先写一个接口,用来模拟用户请求,写入数据库
`app.get(‘/test’, (req, res) => {
exec(“INSERT INTO first_table(first_column, second_column) VALUES(1, ‘aaa’);”);
res.json(success({ errcode: 0, data: {} }));
});`
介绍下wrk
======
-
wrk是一个用来做HTTP benchmark测试的工具。可以产生显著的压力。相比于Apache ab功能更为强大,可以使用lua脚本来支持更为复杂的测试场景,例如PUT请求等。在对于Restful架构的API接口来说,测试起来更加便捷。
-
使用方法
`使用方法: wrk <选项> <被测HTTP服务的URL>
Options: -c, --connections 跟服务器建立并保持的TCP连接数量
-d, --duration 压测时间
-t, --threads 使用多少个线程进行压测
-s, --script 指定Lua脚本路径
-H, --header 为每一个HTTP请求添加HTTP头
–latency 在压测结束后,打印延迟统计信息 --timeout 超时时间
-v, --version 打印正在使用的wrk的详细版本信息 代表数字参数,支持国际单位 (1k, 1M, 1G)
代表时间参数,支持时间单位 (2s, 2m, 2h)`
-
目前我们服务跑在本地http://localhost://8080
-
测试下
wrk -t8 -c500 -d2s --latency "http://localhost:8080/test"
-
采用8个线程,500个长链接,压测2秒
-
结果:
`Running 2s test @ http://localhost:8080/test
8 threads and 500 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 40.70ms 9.60ms 83.48ms 66.26%
Req/Sec 640.89 328.89 1.43k 64.29%
Latency Distribution
50% 39.26ms
75% 46.33ms
90% 54.32ms
99% 65.23ms
8980 requests in 2.08s, 3.13MB read
Socket errors: connect 253, read 201, write 0, timeout 0
Requests/sec: 4321.60
Transfer/sec: 1.50MB`
-
2s内完成了8980个请求,3.13mb的数据读取
-
当然你也可以用lua脚本个性化测试,这里不做过度的讲解,有兴趣可以去学习下
-
数据库结果,写入成功
加大压力测试
======
- 加大压力测试
wrk -t15 -c1000 -d30s --latency "http://localhost:8080/test"
- 此时cpu打到了25%,当然我这是一台Mac pro,如果是普通的机器估计此时已经…
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/ac196c84cf43bf5f7a8bfb11b6c4d66e.jpeg)
Java高频面试专题合集解析:
当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!
更多Java架构进阶资料展示
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
713505409922)]
更多Java架构进阶资料展示
[外链图片转存中…(img-pGwF71DV-1713505409923)]
[外链图片转存中…(img-wZIEyDKY-1713505409925)]
[外链图片转存中…(img-R292ZoxG-1713505409927)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!