上传文件异步处理注意事项

2020-12-19
阅读 2 分钟
3.1k
问题上传Excel进行处理 不用用户等待 处理完之后 会邮件告知处理结果所以是异步处理 {代码...} 实际使用的过程中 发现经常上传失败 报错如下 {代码...} 原因请求返回后 会自动删除临时文件 导致实际读取Excel的时候 找不到文件 {代码...} 解决复制该临时文件 将复制后的文件传给异步程序处理 处理完之后删除该临时文件 {...

swagger-ui 修改默认的请求地址

2020-11-13
阅读 2 分钟
13.3k
将Springboot应用部署到服务器上 通过域名访问swagger-ui(经过了Nginx代理) 进行前后端联调 但是实际点击执行的时候 提示: TypeError: Failed to fetch

jdk1.7+Spring 4.3跨域问题解决

2020-11-02
阅读 2 分钟
2k
遗留项目 jdk1.7.0_79 + spring mvc (4.3.2)接口为了支持跨域访问 Nginx做了如下的配置 {代码...} 但是跨域访问的时候 Status Code: 403 Forbidden {代码...} 同时Console中错误信息如下 {代码...} 为什么Nginx明明已经配置了Access-Control-Allow-Origin 怎么还会报这样的错呢于是尝试在代码中显式添加@CrossOrigin 看...

同样的URL HttpClient调用和CURL调用不能共享缓存

2020-09-26
阅读 2 分钟
1.7k
问题Nginx配置了缓存 发现Java HttpClient调用后 再次curl调用 却没有走缓存 {代码...} 原因抓包进行比较 {代码...} curl {代码...} HttpClient {代码...} HttpClient 多了一个Accept-Encoding 然后试了下curl加上Accept-Encoding之后 能走之前HttpClient已有的缓存 {代码...} 不同的Accept-Encoding 保存在不同的文件中...

Unsupported major.minor version原因一种及解决

2020-07-03
阅读 2 分钟
2.1k
问题 在一个遗留的Java web 项目中 (jdk7+spring4) 引入了Mockito {代码...} 但是运行单元测试的时候就报错 {代码...} idea中所有地方都配置的是jdk7 怎么会有这个错呢 原因 rebuild项目的时候 发现了如下的Warning信息 {代码...} 原来Mockito-core-3.3.3.jar本身就是由jdk8编译的 {代码...} 所以和idea的配置无关 解决 ...

libreoffice输出到NFS共享存储失败原因及解决

2020-05-26
阅读 2 分钟
2.8k
一个web应用部署在了多台机器上 负载均衡 为了解决A机器生成的文件 B机器不可见的问题 找了额外一台机器创建了NFS共享存储 应用所在机器挂载到该共享存储上 如

Spring redis cache 当redis不可用的时候的高可用的一种解决方案

2020-05-23
阅读 2 分钟
3.4k
问题 线上使用的是spring redis cache, 当redis不可用会导致接口也不可用 页面报错 解决 当redis不可用的时候 去调用方法查询数据库获取数据 修改RedisCacheConfig {代码...} 仅记录一下错误日志 然后会继续调用方法 页面会有正常的返回 {代码...} 注意:默认redis超时时间是一分钟 超时时间可以设小点 如5s {代码...} ...

ElasticSearch查询超时原因一种及解决

2020-02-01
阅读 5 分钟
29.4k
问题 最近一次上线后 线上突然多了好多ES查询超时异常 {代码...} 觉得很奇怪 因为就是简单的query by id 怎么也会超时呢? {代码...} 原因 当超时异常发生的时候 执行hot_threads查询 得知原来底层执行了refresh操作 {代码...} 查看官网文档 得知如果该文档有更新 且尚未执行refresh 此时查询该文档会显式执行refresh操...

jdbcTemplate batchUpdate 使用注意事项

2020-01-04
阅读 2 分钟
7k
如果doList中的第一条数据就被忽略了 就会报错 如果忽略的不是第一条的话 可以批量插入成功 但是记录会重复 如 如果第二条被忽略了 第二条的记录 同第一条

通过Arthas来动态打印日志

2019-06-26
阅读 2 分钟
7.4k
需求线上一个Spring boot应用 通过MyBatis来操作数据库 定位一个线上问题 想动态打印sql日志 解决通过Arthas工具来实现上述的需求 {代码...} 刚开始Mapper包对应的日志级别是null 将其改成DEBUG {代码...} 此时当调用Mapper方法时 能打印出sql日志了 同样关闭sql日志 改成info即可 {代码...} 补充因为打印sql日志对应的...

测试类中的静态内部类识别不到(NoSuchBeanDefinitionException)解决

2019-05-04
阅读 2 分钟
2.5k
问题 测试类里面的静态内部类识别不到 {代码...} 当执行bar测试方法的时候 报错: {代码...} 解决 经过断点调试发现 {代码...} this.beanDefinitionNames并没有fooTest.Bar 添加两个额外的注解后 {代码...} 会去调用如下方法 注入fooTest.Bar到beanDefinitionNames中 {代码...} 对应的调用栈信息

Spring data mongodb 唯一索引(@Indexed)单元测试注意事项

2019-03-23
阅读 2 分钟
12.6k
问题 Spring data mongodb Entity有一个字段设置了唯一索引 {代码...} 测试不能添加uid重复的记录 {代码...} 单独执行这个测试方法没有问题 如果执行整个测试类的话 这个测试方法就会通不过 原因 会在每个测试方法结束后 删除collection {代码...} 而Spring data mongodb 只会执行一次createIndex操作 一旦已经执行过了 ...

Spring data mongo 基于注解(@Indexed)自动创建索引源码定位

2019-03-23
阅读 1 分钟
10.7k
背景 Spring data mongodb Entity 字段有如下定义 {代码...} Spring 应用启动的时候会执行createIndexes 如下所示 想知道是在什么地方执行的createIndexes的? 定位源码步骤如下 应该会通过反射获取字段的注解 对如下方法加上断点 {代码...} 并且添加进入断点的条件: {代码...} 断点调试定位源码 最终定位到是在如下代码...

关于ES NoNodeAvailableException 原因一种及解决

2019-01-26
阅读 2 分钟
15k
问题 服务器上部署了一个应用 需要连接ES 配置的是内网地址 {代码...} telnet 10.28.70.38 9300 OK 但是实际调用接口的时候 还是报了下面的错 {代码...} 感觉有点奇怪? 内网地址是通的啊 怎么还报了这样的错呢? 执行 lsof -p pid 发现存在下面这样的连接 变成了连ES的外网地址(106.14.XXX.XXX)了呢?但该服务器连ES外...

关于清空Chrome DNS cache

2019-01-19
阅读 1 分钟
2.2k
通过 VPN + DNS 的方式 将域名 u.foo.com 映射成内网测试环境的地址(如 10.10.205.90)但是连山VPN 配上了DNS后 浏览器中访问的还是生产的地址 但是命令行中解析的是内网地址

日期取值的问题导致pymongo查询失败

2018-06-10
阅读 1 分钟
4.2k
使用pymongo查询MongoDB时 {代码...} 报了如下的错误 {代码...} 原因日期字段值不对 如下所示 {代码...} 正常的格式应该是 {代码...} 但是Java client能正常的解析 解析成的日期是:Wed Mar 24 15:35:58 CST 1971971

MongoCursor简单总结

2018-05-12
阅读 2 分钟
12.1k
cursor要不要显式关闭 Mongo查询数据实现一 {代码...} 实现二 {代码...} 实现二更方便简洁 但是没有显式关闭cursor有没问题呢? 一些结论 如果cursor已被遍历完(exhausted) 会自动关闭 无需显式关闭 所以实现二 没有问题 By default, the server will automatically close the cursor after 10minutes of inactivity, ...

递归调用 VS 循环调用

2018-05-05
阅读 1 分钟
2.1k
现象 有一个方法 逻辑如下 分批查询state=0的数据 每次500条 做一些处理后 修改state状态 state=0 ==> state=1 表示已经处理过了 递归调用 直到查不出数据来 发现当数据量大的时候 如有几万条数据待处理 很容易发生内存溢出的问题 觉得很奇怪 不是每次限制只查500条吗 怎么还会有内存溢出的问题呢? 假设递归调用不会...

SpEL动态计算实践案例

2017-09-14
阅读 2 分钟
4.8k
假如数据库查询出来的结果保存在Map中 如微博账号的查询结果 {代码...} 复合指标 需要基于这些查询结果进行计算得到 如 互动量 = 转发数 + 评论数 + 点赞数 平均互动 = (转发数 + 评论数 + 点赞数) / 发文数 互动率 = 互动量 / 粉丝数 * 100% 那么如何通过这些公式动态计算结果呢? 可以使用SpEL来动态计算 如下所示 计...

风控系统--收费数据源处理

2017-04-21
阅读 11 分钟
5.4k
收费数据源规则执行设计的演进 背景介绍 风控系统每种场景 如现金贷 都需要跑很多规则 规则1 申请人姓名身份证号实名验证 规则2 申请人手机号码实名认证 规则3 银行卡预留手机号码实名认证 规则4 申请人银行卡预留手机号码在网状态检验 规则5 申请人银行借记卡有效性核验 规则6 户籍地址与身份证号归属地比对 ... 而这些...

关于Spring properties --> Map 注入到bean中

2017-04-09
阅读 3 分钟
11.1k
Spring properties to map 一个key-value形式的properties文件 以Map的形式注入到Spring的bean中 properties文件形式 {代码...} spring 配置 {代码...} 注入到Bean中 {代码...} 其他 如何定位注入源码 修改为一个不存在的资源名称 {代码...} 此时启动会报错 {代码...} 可知是在哪里注入的了 在哪里将PropertiesFactoryBe...

得到一个数组中任意X个元素的所有组合 即C(n,m)

2017-02-12
阅读 5 分钟
6.9k
一个数组 找出这样的三个元素 它们的和与目标值最接近如原始数组: [15, 27, 31, 33, 39, 44, 50, 57, 86, 91]目标值: 98这样的三个元素:15,33,50 (15+33+50=98)

需要基于规则筛选过滤对象的一种通用代码实现方案

2017-01-15
阅读 3 分钟
2.5k
需要基于规则筛选过滤对象的一种通用代码实现方案 业务 下单页查询优惠券列表 查询当前可用的所有优惠券 筛选符合条件的优惠券 校验类目 通用券或者与商品类目相同 校验满减券 如满100减50 订单金额需满100可用 校验店铺券 不能使用其他店铺的店铺券 实现方案一 {代码...} 缺点 单元测试不方便 如想测试校验店铺券失败的...

关于Nginx有没可能漏记请求日志或Nginx重复向后端发请求

2016-12-11
阅读 1 分钟
3.8k
偶然发现有一用户同一时间领取了两份新客券 怀疑客户端未做防重复提交处理, 但问了客户端同事, 确实做了防重复提交处理, 然后查看Nginx日志 发现也只有一条领券日志记录

Java8替代传统反射动态获取成员变量值的一个示例

2016-11-15
阅读 3 分钟
8.8k
Java8替代传统反射动态获取成员变量值的一个示例 业务背景 新人注册发优惠券 要发送的券的信息以json的格式配置 如下所示 {代码...} 有一个CouponConfig对象对应的是上述Json配置 {代码...} 现在想得到一个CouponInfo列表 如发送2张 即要得到一个size=2的couponInfo列表 每个CouponInfo即对应一种发送券信息 于是需要解...

关于Java泛型的一个小Tips

2016-11-15
阅读 1 分钟
3.4k
关于Java泛型的一个小Tips 使用ArgumentCaptor捕捉mock方法中的参数 如下所示 {代码...} 报错 {代码...} 解决 使用了更高版本的Mockito--mockito-core-2.0.36-beta 代码对比 mockito-core-1.0.19 {代码...} mockito-core-2.0.36-beta {代码...}

Nginx一种限流方案

2016-11-13
阅读 1 分钟
9.5k
背景 抽奖接口为了防止高并发拖累系统 通过nginx来限流 如最多同时允许100个用户进来抽奖 超过100个则默认返回未中奖 实现 lua 代码 {代码...} nginx中配置 {代码...}

记一次需强制指定使用某一索引的例子

2016-10-26
阅读 1 分钟
4.6k
当存在多个索引的情况下, 有时候Mysql自动选的索引并不是最优的, 此时需要显式指定一个更优索引。 如想查询今天领取且已过期状态的优惠券 刚开始使用的sql是 {代码...} 要等半天才有结果 查看表结构 发现status和create_time均加了索引 {代码...} 但实际使用的是status索引 故需查询1349万多数据 id select_type table...

当前表新增字段呢 还是 新建表呢?

2016-10-25
阅读 1 分钟
3.1k
经常有这种纠结, 分表呢? 还是直接在单表中添加字段呢? 如用户领券表 -- coupon_user 为了满足BI统计需求 需要记录领券来源 如下单赠送, 以及对应的订单号。以及为了统计不同城市的优惠券转化率需记录城市。 纠结的地方在于 是专门独立建一张表 保存上述字段呢? 还是直接在coupon_user中添加这三个字段 -- 领券来源...

application/json 与 application/x-www-form-urlencoded的简单比较

2016-10-23
阅读 3 分钟
39k
application/json 与 application/x-www-form-urlencoded的比较 application/x-www-form-urlencoded 提交请求示例 {代码...} wireshark抓包结果 对应的服务端解析参数源码 {代码...} application/json 提交请求示例 {代码...} wireshark抓包结果 对应的服务端解析参数源码 {代码...} 混用示例 web层代码 {代码...} 提交...