从一次CPU打满到ReDos攻击和防范
近期碰到一起值班报警事件,web应用服务器CPU消耗打到99%,排查后发现是因为ReDoS导致了服务器发生了资源被耗尽、访问系统缓慢的问题,通过排查过程从而分享下ReDos攻击的原理、常见场景以及防范和解决方案,如果有错误欢迎指正。
Stella981 Stella981
4年前
SpotBugs注解SuppressWarnings在Java&Groovy中的应用
在最近做Java服务端代码静态测试过程中,目前采取的方案如下:测试拉取代码到本地。使用IDE:Intellij,插件:SpotBugs(无增强插件)进行静态测试,更新BUG信息,维护文档和代码中的注解。开发修复禅道BUG。QA拉取修复代码分支,与本地分支(含有抑制注解)进行合并,
Stella981 Stella981
4年前
MybatisPlus知识详解以及用十数个例子完成MybatisPlus的入门到进阶
1\.MybatisPlus1.1业务需求Mybatis缺点:1.Mybatis操作数据库的过程中,需要编辑大量的sql语句.无论该sql是否复杂或者简单.2.Mybatis操作时在xml配置文件中需要额外记忆单独的标签.需求:能否实现单表操作的CRUD的全自动的实现.能否实现
Stella981 Stella981
4年前
Docker容器学习与分享12
Docker多主机管理之前在一台Centos7上安装了Docker,如果是在多台主机上都安装Docker,用手动安装的方法不光效率低下,而且有可能出错,所以可以使用DockerMachine进行多台主机的Docker安装和管理。具体安装过程可以参照官方文档https://docs.docker.com/machine/installma
Easter79 Easter79
4年前
Tomcat源码构建可运行的Tomcat
Tomcat是大家熟悉的JavaEE容器,我们使用的时候通常都是直接下载.exe的安装包或者.zip的压缩文件,今天特意参考官方文档来用源码构建,并在这里记录下构建的过程。1\.下载Tomcat源码可从以下地址选择更多的Tomcat版本:http://archive.apache.org/dist/tomcat
Wesley13 Wesley13
4年前
Mysql 插入记录时检查记录是否已经存在,存在则更新,不存在则插入记录SQL
我们在开发数据库相关的逻辑过程中,经常检查表中是否已经存在这样的一条记录,如果存在则更新或者不做操作,如果没有存在记录,则需要插入一条新的记录。这样的逻辑固然可以通过两条sql语句完成。SELECTCOUNT()FROMxxxWHEREIDxxx;if(x0)INSERTI
Stella981 Stella981
4年前
Linux下inittab文件详解
/etc/inittab文件详解Linux系统的启动过程为:加电自检根据BIOS中的设置从指定的设备启动找到设备MBR中的bootloader引导启动系统启动kernel启动init进程我们看到,Linux系统启动的最后是启动init进程,而init进程是怎么工作的呢?init进程就是根据/etc/inittab
Easter79 Easter79
4年前
SpringBoot开发秘籍
!(https://oscimg.oschina.net/oscnet/bc504ae355a6440f9e25407871dc958e.png)在项目实际开发过程中,我们有很多这样的业务场景:一个事务中处理完一个业务逻辑后需要跟着处理另外一个业务逻辑,伪码大致如下:@Servicepublic class ProductServ
GPU虚拟化技术简介:实现高性能图形处理的灵活部署
GPU虚拟化技术是一项重要的创新,通过将物理GPU划分为多个虚拟GPU,实现多用户共享和独立运行图形处理任务的能力。本文介绍了GPU虚拟化技术的基本原理、应用场景和优势。该技术在云计算、虚拟桌面基础设施和科学研究等领域具有广泛应用。GPU虚拟化技术提高了资源利用率、性能和灵活性,同时保证了系统的安全隔离。随着技术的不断进步,GPU虚拟化技术将进一步改善,为用户提供更高效、便捷的图形处理体验。
手把手教你编写自定义Categraf插件
Categraf是一个监控采集Agent,类似Telegraf、GrafanaAgent、DatadogAgent,希望对所有常见监控对象提供监控数据采集能力,采用Allinone的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。相比于其他采集器,Categraf的优势在于:支持remote_write写入协议,支持将数据写入promethues、M3DB、VictoriaMetrics、InfluxDB;指标数据只采集数值,不采集字符串,标签维持稳态结构;采用allinone的设计,所有的采集工作用一个agent搞定;未来也可以把日志和trace的采集纳入agent;纯Go代码编写,静态编译依赖少,容易分发,易于安装。