小记:for循环中要避免json序列化

44 阅读1分钟

涉及内容:

1.for循环内避免json序列化,json序列化是一个cpu绞肉机。

2.jvm调优方法论:www.51cto.com/article/826…

数据采集: GC日志,堆内存快照(heap dump),线程快照(thread dump),实时运行时数据(jstat -gcutil )

线程分析:状态统计,死锁检测,cpu占用高线程。

日志解析:业务日志,gc日志,线程快照,堆快照。

堆dump:MAT(memory analyzer Tool),

3.数据同步

  • 性能问题:数据量大-〉分批处理+批量操作+并发处理。
  • 时效问题:CDC(实时监控数据库变化)+消息队列
  • 数据一致性问题:数据丢失/重复->游标机制(避免offset深分页)+幂等处理+数据对账(定期校验数据一致性)。
  • 可观测性问题:同步状态不透明-〉日志记录+实时监控+告警
  • 可靠性:容错能力差-〉断点续传+自动重试+故障回滚(自动恢复)
  • 消息重复:唯一ID+去重
  • 消息乱序:分区机制(需要保证顺序的消息发到同一个分区内)
  • 消息堆积:集群+动态扩容+负载均衡

4.Java中Pari的使用。

5.cacheLine 解决伪共享问题。

zhuanlan.zhihu.com/p/62110978

6.对象拷贝,避免使用apache的BeanUtl,使用mapstruct,spring的BeanUtil.

7.通过trae实现一个项目。