摘要: 背景: 因为每次对业务表的操作都需要记录创建人和修改人。因为不想每次set操作。所以写了一个拦截器实现MetaObjectHandler接口,并实现了insertFill方法。 @Overridepublic void insertFill(MetaObject metaObject) { Stri 阅读全文
posted @ 2020-01-23 15:57 惊艳了时光 阅读(4702) 评论(0) 推荐(0) 编辑
摘要: 方式1:elasticsearch: nodes: xxx.xxx.xxx.xxx:9200,xxx.xxx.xxx.xxx:9200,xxx.xxx.xxx.xxx:9200 schema: http max-connect-total: 100 max-connect-per-route: 50 阅读全文
posted @ 2019-11-29 23:38 惊艳了时光 阅读(12231) 评论(1) 推荐(0) 编辑
摘要: 图片转base64字符串网站:http://imgbase64.duoshitong.com/// 前缀,比如data:image/jpeg;base64,String prefix = imgBase64.substring(0, imgBase64.indexOf(",") + 1);// 替换 阅读全文
posted @ 2019-09-22 02:58 惊艳了时光 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 在下面的代码之前,需要知道bucket、accessKeyId、accessKeySecret,以及域名 endpoint; pom.xml: 但是会出现一个新的问题: <Error><Code>SignatureDoesNotMatch</Code><Message>The request sig 阅读全文
posted @ 2019-09-22 02:38 惊艳了时光 阅读(9682) 评论(0) 推荐(0) 编辑
摘要: 最近在使用mock进行单元测试的时候,遇到了下面的问题: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!1 matchers expected, 2 re 阅读全文
posted @ 2019-07-08 21:58 惊艳了时光 阅读(10330) 评论(0) 推荐(0) 编辑
摘要: 1、用户信息脱敏,包括但不限于密码、姓名、邮箱、电话、地址、证件号等,必须加密后落库。 方式A:MD5+salt。md5准确说不是加密,只是信息摘要,容易受到彩虹表攻击,这里一定要加salt使用。 方式B:对称加密。 2、防串改。采用https协议。在http的基础上加上了ssl,如果要破解,要破C 阅读全文
posted @ 2019-06-03 23:51 惊艳了时光 阅读(357) 评论(0) 推荐(0) 编辑
摘要: kafka,一个topic通常会有多个partion。单个的partion是保序的,那么多个partion呢? 要想在多个partion情况下实现保序,在send消息的时候,ProducerRecord中一定要指定key。 partion保序了,剩下的就是消费者保序,一定要采用单线程进行消费。 阅读全文
posted @ 2019-05-20 23:17 惊艳了时光 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 关于分布式锁,一般有三种选择, 1、redis 2、zk 3、DB锁(悲观锁、乐观锁) 其中用的最多的应该是redis。 redis常用的方式有单节点、主从模式、哨兵模式、集群模式。 单节点在生产环境基本上不会使用,因为不能达到高可用,且连RDB或AOF备份都只能放在master上,所以基本上不会使 阅读全文
posted @ 2019-04-20 00:33 惊艳了时光 阅读(40244) 评论(0) 推荐(1) 编辑
摘要: 一般使用悲观锁(for update),都是防止并发情况下对某个业务表数据同时进行修改操作。 这个时候该如何去优化呢? 一般悲观锁,如果按照索引去查询,锁住的是行级锁。一般是单个账户一行记录。 这个时候可以考虑将要批量的更改业务数据,按照用户分组,然后开启多线程去处理。 这样能让多个用户之间同时处理 阅读全文
posted @ 2019-04-05 02:34 惊艳了时光 阅读(571) 评论(1) 推荐(0) 编辑
摘要: 有一个需求需要获得美国的凌晨0点,来计算当天用户的某操作的次数。(应用服务器在美东,数据库设置的是0时区) 代码如下: Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone("America/New_York")); c1.set(11, 0 阅读全文
posted @ 2019-02-13 22:44 惊艳了时光 阅读(684) 评论(0) 推荐(0) 编辑