一些小问题
1.serialVersionUID与加签。
serialVersionUID 的意义是,在java序列化,和反序列化中通过比较serialVersionUid 是否一致,来判断实体类是否一致。这和加签的意义有相同的地方。加签的作用,也是防止内容篡改。
2.Linux中单个txt文档,最多可以写入多少内容。
3.select count(*) from 查询速度非常慢。
oracle表里有2000w条的数据。查询表总数非常慢,大概需要5分钟
4.存储过程批量插入数据。插入2000W条数据,速度非常慢。
最开始写批量插入脚本的时候,没有考虑太多。直接一次插入2000w条数据,插入完之后,再提交事务。发现执行的速度非常慢。网上找了些资料。简单总结一下。在执行的过程中,会先把内容写入redolog,等到空闲的时候,在通过redolog将数据同步到磁盘中。但是执行插入的数据太多,redolog被写满的情况下。会停止写入操作。而首先将数据写入磁盘。
后面优化脚本。没10W条数据提交一次事务,速度提升了50%。大概花了半个小时插入了2000W条数据。
关于流控
目前我负责系统使用的流控,使用的是漏桶算法,和令牌桶算法相比,就目前的场景而言,没发现区别。
流控,更专业的说法是:流量整形
就我们目前流控系统,作用主要如下
1.防止高并发,导致服务性能下降,甚至宕机。在并发,达到流控阀值时,拒绝服务
2.对接下游系统,在不确定下游系统并发能力的情况。系统做好流控,及服务降级的准备。