下面是我总结的在大型互联网架构设计中实际踩过的坑简单总结,希望能给大家带来思考,避免重复踩坑:
• 参数未做校验导致内存溢出
• 数据库死锁
• 数据库 / Redis 连接被打满
• 数据库事务问题
• Redis 链表长度问题
• Redis /JSF 数据传输超限
• MQ IO 问题
• 死 循环 JVM Crash
• 缓存失效引起雪崩
• ID 超长 long 、 int 问题
• Work 假死问题,实例数小于等于队列数
• 数据存在特殊字符(空格、乱码)
• Cansandra 的 key 太长出现宕机
• Mysql 默认 utf8 三个字节,有的字符不只 三 个字节,造成无法存入
• 批量写入替代逐条写入
• 频繁创建 Java 实例造成 JVM 内存很高,垃圾回收频繁
• VIP 切换延迟造成错误全部实例下线 VIP
• HashMap 碰撞造成死循环
• Redis 对单个 key 并发过高且数据量大,造成连接耗尽
• JMQ 执行时间 ( 或者超时时间设置太长 ) 太长会造成负载不均, JMQ 也会积压
• JSF 参数对象加字段造成客户端报错
• JVM1.7 tomcat6full GC 收集问题
• Jproxy hash 算法不均,性能出现问题
• JMQ 消息长度超过了重试数据库能接收的长度,造成不停的重试