自研AI绘画网站

不要问我为什么不运用Spring Boot进行开发,我只是说在公司作业运用了好多年的Spring Boot,现在开发自己的东西,那么果断得用点新的东西啦(求进步中……)。

这儿说一下根本的技能,供咱们参阅哈。

前端

因为比较长期没触摸前端新技能了,仍是用的Vue那一套前端结构,改变不大,在运用中发现其实不怎么方便。

服务端

运用的Quarkus作为结构,涉及到Quarkue ReactiveORM层是Panache,底层是Vert .x,DEV环境发动后有面板能够看到具体运用的技能。

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

实践事务代码大致是这个姿态的:

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

会看到许多的链式编程,这是之前写同步代码所没有的。不过写了几回也就习惯了,还挺方便。不过,Quarkus是作为云原生技能而出名的,我将其用作单体服务有点屈才。

数据库

有句话:“PostgreSQL: The world’s most advanced open source database.”

开发进程

我印象中的作业流程大致是下面这个姿态的。

  • 产品司理进行产品规划;
  • UI规划师出具UI规划稿;
  • 领导对UI规划稿和产品规划批阅经过;
  • 领导进行排期、拆解作业包、计划等等;
  • 服务端工程师开始参与开发;
  • 前端工程师进行开发;
  • 测验工程师进行功能测验;
  • 测验工程师进行压力测验;

但是,如果只有一个人呢?那么就变成了,我来规划、我来开发、我来测验。哈哈哈,节约了N多成本。所以经历了N天的开发之后,我的第一版出现了:(DEMO网站:jmai.art/home)

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

所以,其实开发一个人就能把一切作业都干了!!!哦吼……

压力测验

作为一名纯纯的服务端Java开发人员,也不太想用公司的那套Jmeter的东西做压测。而平时最常用的是wrk又不太适合做这种事务性质的压测。

在翻了挺多关于压测的帖子,找到了一个比较符合心意的东西。

Grafana k6: Load testing for engineering teams

主要原因有两个

  1. 运用JS写压测脚本,对我来说没啥问题;
  2. 居然支撑Postman直接导出压测脚本,爱了(平时都是运用Postman进行自动化测验,所以这块吸引我);

Postman

在日常开发中,已经都对API做了一轮测验了,大致20个接口左右;

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

Postman 导出

选中目录后,挑选Export,然后挑选Json格式导出文件;导出的文件重命名为AI-Run.json

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

然后导出当前的环境信息,文件命名为AI-Env.json

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

转化为K6脚本

官网给了两种方法进行脚本转化,咱们挑选其中一种。

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

所以我打开了我亲爱的命令行东西,敲击键盘:

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

所以咱们得到了咱们的压测脚本:ai-k6-script.js

先来一轮冒烟测验

执行命令k6 run ai-k6-script.js,然后能够得到冒烟测验的成果。

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

http_req_failed的成果,一共25个接口,全都成功。

压力测验

经过设置虚拟用户的数量,能够进行压力测验,大致脚本的姿态如下

k6 run --vus 10 --duration 30s ai-k6-script.js

成果大致如下

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

当然,K6提供了许多成果展现的方法,能够参阅K6的官方文档进行建立。

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

咱们就挑选Html的展现方法,究竟这个是最简略的(github.com/benc-uk/k6-…

执行命令仍是k6 run --vus 10 --duration 30s ai-k6-script.js,输出成果大致如下,能够经过切换Tab检查不同纬度的指标。

✅摒弃Spring,我开发了一个AI绘画的网站,并用K6做压力测试

总结

其实有些仰慕大厂的螺丝钉们,能在一门技能上钻研好久。而作为耗材的我,经常身兼多职,所以啥都了解一些,甚至会有些实践的经验。如今市场的状况欠好,也期望自己能在作业之外,多多提升自己的技能视界技能能力。之前用Python开源了一个AI绘画的插件(github.com/SoftMeng/st… 这也让我萌生了自己编写一个AI绘画的Prompt网站的念头。

从产品视点,其实AI绘画的Prompt的网站并不少,而且技能难度也不高。但是从个人技能视点,运用Quarkus Reactive做了一个完整的项目,仍是对我有所提高的。也非常感谢公司提供了一些支撑,帮我省去了微信公众号认证的300块钱。

我的个人观念仍是没变,实践增长的知识会比单纯的阅览有用的多。