如何把socket通讯接收到的数据放在缓存里,然后用另一个线程读取缓存来进行数据库的写入操作

先贴上nio通讯代码

图片说明
图片说明


图片说明

这获取到通讯数据后,我想放在缓存里,然后另一个线程就负责读取缓存的数据进行数据库插入操作。在网上查过关于ehcache和redis之类的缓存框架,也考虑过是否可以用一个静态变量替代缓存,想问问各位大佬哪种实现起来比较简单并且靠谱并提供一个设计思路。万分感谢。!!!

2个回答

如果想解耦的话,还是用消息队列吧。 服务端接收消息 并发送消息队列 消息队列消费端 负责接收消息 并录入到数据库。socket通讯可以用 Spring WebFlux。Spring 都有集成 消息队列和数据库的 Starter 组件。

weixin_44999360
让她淡淡的来 感谢回答 我使用rabbitMQ了
一年多之前 回复

其实都可以的,这就是一种常见的生产者、消费者的应用,也可以用内存的全局队列,如 LinkdeBlockeQueue ,开启一个监听线程循环从该队列中获取数据,生产者放数据即可。
可以私信我,节后可以给你找找相关代码。这类简单应用很常见,我写过很多。

weixin_44999360
让她淡淡的来 感谢回答 我使用rabbitMQ了 还挺好用的
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问