- 博客(11)
- 收藏
- 关注
原创 实现防sql注入的特殊字符切面过滤拦截
实现防sql注入的特殊字符切面过滤拦截不使用过滤器、spring拦截器原因:1、http输入流不能重复读取,需要重写HttpServletRequest的相关方法,将http输入流第一次读取的数据缓存起来。2、基于尽可能少修改原代码进行在这里插入代码片扩展的原则,避免修改代码造成的未知风险。package com.to8to.tbt.aoc.interceptor;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSON
2020-10-10 17:03:59
1043
原创 基于概率的hyperloglog数据结构实现大数据基数统计原理分析
hyperloglog基数统计原理分析从LogLog说起,其算法完整的基数计算公式如下:那么hyperloglog与loglog不同的是采取调和平均数,计算公式:问题1:hyperloglog怎么去重,而避免重复计数?hyperloglog将需要被存储的内容计算得到随机分布的hash编码(随机分布128位的hash编码可模拟伯努利过程),那么相同的内容计算的哈希编码相同,这么就实现了去...
2020-02-19 00:30:31
347
原创 lstm实现虚拟机实例个数预测
1.什么是ECS弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的最基础的计算组件。开通只需要指定CPU、内存、操作系统、规格、登录鉴权方式即可,同时也可以根据需求随时调整弹性云服务器规格,为您打造一个高效、可靠、安全的计算环境。2、虚拟机预测分析过往租户对ECS实例请求的行为的规律,针对性地使用预测算法,为云平台的提供一个精准的需虚拟...
2020-02-18 23:15:49
379
1
原创 数据库并发情况下重复写入
有一个信息并发调用java接口的场景,那么java多线程同时校验信息不存在于数据库,不加以控制便会造成两条信息重复写入,解决办法:1、在数据库为字段建立唯一索引,那么在写入过程中,可以看到的是,同时写入,会把先写入的回滚:id为自增主键,那么id值为20开始保存下一条设备信息,两条deviceId相同设备信息同时写入,那么id值变为了22。(简单高效)2、使用分布式锁,基于redis的实现方...
2020-02-18 22:53:34
1498
1
原创 为什么用与业务无关的自增id作为mysql主键
业务无关的自增id作为数据库主键:1、可以反过来思考,若使用业务相关的唯一标识做主键,小概率可能会因为业务场景的变更,此时的被认定为业务唯一标识的字段不唯一。虽然有点牵强,但是很多都基于这种考虑。2、对于InnoDB来说,主键是聚簇索引,主键索引位置同时存储索引值和该行记录。在B+树的数据结构中叶子节点存储数据,如果没定义主键,则会使用非空且唯一的字段,默认为作为主键,如果前面两者都不存在则...
2020-02-18 22:40:00
3897
2
原创 程序开发幂等性设计
幂等性数学概念幂等性的数学概念为x的n次幂值均相同,即:f(f(x)) = f(x)计算机网络幂等性规则那么在计算机网络中则代表着,重发多次相同参数请求到服务端,服务端执行最终结果都是一致的(注意:这不代表返回结果值相同)。这就相当于服务端每次执行的结果都是根据请求参数做直接赋值相关操作:y=fromReqParam,而不是加减乘除使得y值发生改变的操作。幂等性接口设计幂等性的接口...
2020-02-18 22:36:15
211
原创 junit单元测试代码执行顺序问题
在测试代码中,方法在代码顺序可以是:saveDeviceInf,updateDeviceInfFromRegId,updateDeviceInfFromDeviceId,clearDeviceInf。但是对于测试类的单元测试流程,而不是根据方法在代码中的顺序排序执行,执行顺序为:1-2、junit提供通过注解**@FixMethodOrder(MethodSorters.NAME_ASC...
2020-02-18 22:26:06
1330
原创 jpa多数据源事务配置
JPA如果不配置事务,进行数据库DML的delete则会报错:org.springframework.dao.InvalidDataAccessApiUsageException:No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' cal...
2020-02-18 22:20:40
1150
原创 Java基本类型与包装类比较(装箱拆箱)
Java装箱拆箱原理简言而之,java装箱即java编译器将基本数据类型自动转换成其包装类,拆箱即包装类自动转换成基本类型。特别比较a = Integer(0),b=Integer(0),c=0的数值问题时:a != b ,b ==c,a==c,a.equals©均为true。原因在于==是直接比较内存地址,而基本类型包装类重写了Object类equals方法。 当基本类型封装类与基本...
2020-02-18 21:58:32
232
原创 快应用消息推送push服务端开发
文章目录快应用消息推送push开发一、设备信息保存1、设备id的生成1-1生成规则1-2生成弊端1-3更为简单的方式保证唯一性2、不合法regId的过滤3、上报更多设备信息4、程序实现逻辑4-1 程序流程图4-2 实现逻辑核心思想描述5、线上出错问题以及解决方式5-1设备信息索引重复5-2设备信息保存并发死锁二、消息推送1、厂商消息推送对比1-1厂商消息推送token的获取厂商对比处理的方式1-2...
2020-01-20 00:52:24
4044
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人