最近入职做了一个小任务,实现一个小系统并且在有限的硬件条件下达到规定的QPS。环境架构压测工具: wrk后端架构: Nginx -> Gunicorn -> Golang -> MySQL硬件环境: 4核 8G这个架构涵盖了Nginx快慢连接,微服务网络调用,还有数据库连接,每一步
2021-07-22
1,048 views
3 min read
现有主流前端框架如Vue,React都有自己的脚手架,一键就能搭建起前端项目的架子,基本都带有Node本地服务器,还能监视代码,Typescript,Scss一类的超集语言都可以实时编译。
2021-04-12
1,697 views
3 min read
去年写过一篇文章,Jenkins + Docker 构建自己的自动化部署。自动化部署虽好,但是Jenkins的服务器资源占用不低,甚至一度超过了我所有项目的总和,为了节省服务器开支,我便开始搜寻市面上的CI/DI服务提供商,最终选择了微软的Azure Devops。
2021-04-09
1,014 views
4 min read
诸如Golang和Java的项目,需要编译后运行,如果在物理机上编译完再做成Docker镜像,那么也没什么问题。但如果要把构建和运行都放在Docker里完成,镜像就会很大了,构建使用的镜像可能是运行时的镜像的好几倍乃至几十倍。
2021-04-05
1,000 views
3 min read
如果你的网站还没有https,那么使用certbot是一个不错的选择,它能帮你免费申请到90天的https证书,并且可以无限次的续期。
2021-04-01
1,705 views
3 min read
React^17.0.1; mobx^6.1.8; mobx-react^7.1.0;原代码export default class AuthStore { @observable token: string; @observable username: string; @ob
2021-03-25
1,217 views
2 min read
最近在用java写一个手游脚本框架,采用识图的方式处理脚本逻辑。与安卓手机的交互的话最方便的可能就是ADB了。可以用命令行的方式操作ADB,但这显然太麻烦且编码困难,尝试过自己封装但是封装的不太好,经过搜索,发现有Google自己做的一个包ddmlib,专门用来操作ADB,从建立连接到各种命令都非常
2021-03-17
1,643 views
14 min read
版本:3.4.1按照官网的文档,配置了分页插件@Configurationpublic class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return
2021-01-30
2,575 views
1 min read
客户端与服务端的请求,主要是对服务端资源的增删改查,所以大多数人会想到REST,而服务与服务之间的通信,主要是传入参数,调用方法,得到结果,所以大多数人会想到RPC。提到RPC的话,网络上已经有各种成熟的方案,诸如grpc,brpc等等。这些方案通常用在大型项目上,如果只是小项目乃至单机部署,不需要
2020-10-27
1,882 views
11 min read
不少人初时Docker时应该都遇到过这个问题,例如宿主机安装了mysql,但应用是Docker部署的,且需要连接mysql,那么就会遇到这个问题。一般人会选择直接使用公网ip或服务器组内私网ip的方式,实际中这样做的也更多,因为一台服务器上一般只会有一个服务,但也不排除个别情况,今天就更别情况讲一讲
2020-06-24
2,714 views
2 min read
当你写完代码后,点下push按钮,不到一会你的线上应用就完成了更新并且运行了起来,这就是完美的工作流。准备流程这样的工作流也称自动化部署,具体的流程:开发人员推送代码到git仓库git仓库触发webhook请求build服务器build服务器执行构建任务build服务器打包docker并push到d
2020-06-02
1,999 views
8 min read
生命周期一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)七个
2020-04-09
1,245 views
2 min read
首先从垃圾回收说起,当发生GC时,需要从方法区或本地变量表等地方获取GC Roots,但如果是单纯的遍历查找的话是非常亏的,GC发生时本身就停止了所有的线程,不能让这一操作耗费太多的时间。HotSpot为优化GC Roots的查找,采用了OopMap这一数据结构,一旦类加载动作完成的时候,HotSp
2020-04-07
2,089 views
1 min read
参考当Java处在偏向锁、重量级锁状态时,hashcode值存储在哪?由上图可以看出来,HotSpot VM 为了优化空间,复用了对象头的一部分空间,不免产生一个疑问:当对象头处于锁定状态时,其对象哈希码、分代年龄、偏向模式等数据又存放在哪里了呢?偏向锁当一个对象已经计算过identity hash
2020-04-04
3,398 views
2 min read
我们通常使用ngModel在模板上双向绑定数据,但是ngModel只作用于基本标签,我们自定义的组件没办法直接使用。如果我们要把input标签封装成一个组件,也是可以使用ngModel的,需要这个组件实现ControlValueAccessor接口,并且注入NG_VALUE_ACCESSOR。imp
2020-01-29
3,796 views
2 min read