weixin_44999360
让她淡淡的来
采纳率50%
2019-04-30 12:08 阅读 1.3k

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

先贴上nio通讯代码

图片说明
图片说明


图片说明

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • weixin_41715077 October- 2019-04-30 12:15

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

    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2019-05-01 20:06

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

    点赞 评论 复制链接分享

相关推荐