美文网首页
高并发程序开发经验总结

高并发程序开发经验总结

作者: ktime | 来源:发表于2018-03-06 17:01 被阅读0次

在2017年10月份左右实际开发了一个高并发实时处理数据系统,具体在哪做的就不说了。在开发初期遇到很多问题,真的是一步一坎。总结下之前做的。

先简单介绍下背景,通过数据交换平台实时收取数据,收到数据后,做相应的业务处理。当中的业务处理比较复杂,业务规则比较多,前期当中有很多跟数据库的交互。前期开发完成后,发现业务规则和业务需求不一致(前期需求不明确),后来进入压测环境测试发现性能达不到要求的1秒12000多笔。这个方案被否定,经过讨论,最终敲定实时接收数据,处理前1秒的数据。这个方案中,也有不足之处,对于延时的处理都是丢弃数据,直到获取到应该处理的数据。方案结构图如下:

方案中使用了bucket,收取数据时,会根据当前时间秒数,将数据放入对应编号的bucket中,会另起一个线程时候去获取前一个bucket(放入数据的前一个bucket)数据进行业务处理。

在实际的开发中,针对跟数据库的交互或者跟三方接口交互打了很多的耗时日志,最后很多数据库操作做成了跟本地缓存的操作,入数据库修改成入redis,同步的操作,尽量修改成异步。涉及到的具体技术栈是本地缓存技术考虑到缓存存活周期轻量级左后采用的是guavaCache,异步操作使用了java自带的固定大小的线程池技术,对于线程间的安全采用了增加锁机制。

高并发的系统开发,前期业务需求确认好,做好业务的划分,找到其中耗时点,在选用技术栈上也要慎重。

相关文章

网友评论

      本文标题:高并发程序开发经验总结

      本文链接:https://www.haomeiwen.com/subject/ogbsoxtx.html