Java 读取千万级数据库数据:流式游标、fetchSize 与分片处理
这篇文章主要讲解 如何从数据库加载1000w数据
加载大量数据
例子:将1000w的数据从数据库导入到redis中
在mysql中的实现方法:1、limit 分页 2、游标 千万级数据不能简单一次性加载到 List 中,否则容易造成长事务、内存溢出和数据库压力。设计时应先明确是在线查询、离线导出还是数据迁移,再选择流式读取或分片处理。
这篇文章主要讲解 如何从数据库加载1000w数据
例子:将1000w的数据从数据库导入到redis中
在mysql中的实现方法:1、limit 分页 2、游标 千万级数据不能简单一次性加载到 List 中,否则容易造成长事务、内存溢出和数据库压力。设计时应先明确是在线查询、离线导出还是数据迁移,再选择流式读取或分片处理。
这篇文章主要讲解 Java 启动参数 在linux用jmeter做压力测试的时候,发现jmeter启动参数,记录一下:
java -server -XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20 -Djava.security.egd=file:/dev/urandom -jar xxxx.jar
解释一下上述参数意思: Java 命令中 JVM 参数必须放在 -jar 或主类之前,应用参数放在其后。排查启动问题时应同时记录实际命令、Java 版本、环境变量和容器资源限制。
这篇文章主要讲解 spring boot如何发送邮件
发送邮件是一个很常用的功能,比如线上故障告警,验证码等功能都会用到,下面我们来看看用spring mail 来实现发送邮件 邮件发送属于外部依赖,业务线程不应无限等待 SMTP 响应。生产环境应设置超时、重试和异步队列,并避免在日志中打印收件内容与认证信息。
这篇文章主要讲解 maven打包可执行jar配置 可执行 JAR 需要在清单中声明入口类,并解决第三方依赖如何随包分发的问题。普通 jar、带依赖的 fat jar 与 Spring Boot 可执行包使用的插件不同。
[TOC]
使用spring-data-redis中的redisTemplate存储key-value,然后使用redis-cli去查询时查询不到相应的key。使用keys *时发现redis中key的前缀多了一些字符 Redis 问题经常表现为乱码、类型转换失败、连接耗尽或缓存数据不一致。排查时应先确认 key/value 序列化器、客户端版本、超时配置和实际写入数据。
这篇文章告诉你如何通过spring创建一个"hello world"的restful的web服务 一个可维护的 REST API 不只返回 JSON,还应定义资源路径、HTTP 方法、状态码、参数校验和统一错误格式。示例接口上线前还要补充认证、限流和日志脱敏。
国内最好的maven repository
仓库地址的可用性会随时间变化,复制配置前应先验证 HTTPS、证书和组织策略。团队项目更适合使用 Nexus 或 Artifactory 等私服统一代理外部仓库。
项目中使用的UEditor是1.3.6版本
最新的版本上传的东西都封装到jar包了,自定义很困难。
旧版上传示例应作为历史项目参考。文件名、扩展名和 MIME 类型都不能直接信任,服务端必须重新命名文件、限制大小并隔离可执行内容。
本文主要介绍spring mvc mock测试
我们在写spring mvc controller时,一般情况下都是在浏览器测试 但是有时候,我们写的controller提供的是api接口,这时我们该怎么测试呢? 这时spring mvc给我们提供了一个很好的测试方法,mock test
多的不说了,直接看代码: MockMvc 可以在不启动真实 HTTP 服务器的情况下验证控制器、参数绑定和异常处理。测试应同时覆盖正常请求、缺失参数、非法数据和权限不足。
这篇文章主要讲解 正则表达式类
这个类包含了项目中绝大多数要使用的正则表达式,具体看代码: 正则表达式适合结构明确的文本查找与校验,但复杂模式可能产生灾难性回溯。生产代码应预编译常用 Pattern,并用正常、边界和恶意长输入进行测试。