2团日志

Nginx限流设置

1. 前言 项目上线前需要进行压测,测试部门对关键的接口进行压测,发现接口响应时长和TPS均优于预期结果,但是后台服务器的CPU负载较高,超过了70%的使用线,因此需要对其进行限制。 因为时间比较紧急,如果逐个对接口进行优化,降低CPU负载是个较为艰难的挑战,因此我们尝试基于Nginx进行请求限流以

2团 2团 Published on 2024-08-16

SpringBoot 3配置加密(TLS)访问MySQL

1. 前言 前序开发项目,因为没有合适的主机资源,将MySQL通过Docker形式部署在云主机上,并通过Nginx反向代理暴露于公网上。为了浅浅的保障一下MySQL以及主机安全,因此配置MySQL仅允许通过加密连接进行访问,具体配置可参考《MySQL 8.4的Docker compose设置自动生成

2团 2团 Published on 2024-08-16

高端云硬盘IO测试

1. 硬盘信息 高性能云硬盘盘符为/dev/vdb,文件系统格式为xfs。 2. hdparm测试 hdparm --direct -t -T /dev/sda 测试指令解析: --direct:by-pas

2团 2团 Published on 2024-08-16

MongoDB五分片三副本集部署

1.前言 最近搭建性能测试环境,主机规格为三台8C16G(这个内存量确实比较尴尬)云主机。选用的部署方案是多分片三副本集的部署方式,以期在通过横向拓展扩展提升数据库整体吞吐的情况下,尽可能保证数据的高可用性。 但是实践发现,三分片三副本集的MongoDB集群,无法承载持续的大数据量写入。因此,经过调

2团 2团 Published on 2024-08-16

通过Emoji认识Java String

1.前言 Emoji表情在通讯场景被广泛使用,最近处理bug单时就遇到了相关问题,在解决问题的过程中重新认识了下Java的字符编码,故形成此文。 String emostring ="😂😍🎉👍"; 上述字符串中包含4个Emoji表情,从直观上我们认为其长度应该为4,但是通过如下代码计算其长度

2团 2团 Published on 2024-08-16

前端缓存零散知识点

1. 浏览器缓存 浏览器缓存区分为强缓存,以及协商缓存。 1.1 强缓存 浏览器在满足一定条件时,不发送网络请求,直接使用缓存数据。 1.1.1 expires expires 是 http1.0 的字段。首次请求时服务端会在 http 响应头上加上 expires 字段,并设置一个过期时间。如 E

2团 2团 Published on 2024-08-16

深入了解G1 GC

1. 前言 本文参考了众多博客文章,现在按照自己的理解,将众文章中的知识点提取出来进行组合,文章列表详见附录。 Java 8之后,JVM的首选垃圾收集器由Par NEW + CMS组合变更为G1(Garbage First)。虽然Java 21及之后的版本,会更推崇使用ZGC,但是项目中应该会坚持使

2团 2团 Published on 2024-08-16

Spring Boot设置业务线程池优雅关闭

1. 业务背景 最近项目运行,发现某热点业务流程,频繁调用Mongo进行入库操作。此处已经成为性能瓶颈,需要对其进行优化。 因为入库数据主要是作为审计进行使用,对入库的时间实时性要求不高,且可以容忍在意外情况下丢失部分数据。 基于此点,设计使用内存阻塞队列存储Mongo入库请求(削峰填谷),然后使用

2团 2团 Published on 2024-08-16

Ubuntu通过apt安装指定版本Node.js

Ubuntu自带的Nodejs版本过低,因此我选择基于NodeSource软件源安装较高版本的Nodejs。 NodeSource (https://github.com/nodesource/distributions)是一个公司,聚焦于提供企业级的 Node 支持。它维护了一个 APT 软件源,

2团 2团 Published on 2024-08-16

MyBatis-Plus字段加密存储解决方案

1. 需求背景 项目采用MyBatis-Plus作为ORM工具,近期需要对手机号,账户等敏感信息进行加密存储。 考虑到MyBatis提供了BaseTypeHandler,可以继承此对字段进行自定义操作,于是创建以下解决方案 2. 加解密Handler 因为加密的字段,在部分场景下还需要提取出来执行业

2团 2团 Published on 2024-08-16
Previous Next