在一个高并发多线程的Java项目中,我需要实现一个非阻塞缓冲区。
在我的场景中,我有一个Web层,每秒接收大约20,000个请求。我需要将其中一些请求累积到某些数据结构(也就是所需的缓冲区)中,当它满了时(假设它包含1000个对象),这些对象应该被序列化到一个文件中,然后发送到另一个服务器进行进一步处理。
实现应该是非阻塞的。 我检查了ConcurrentLinkedQueue,但我不确定它是否适合这项工作。
我认为我需要以某种方式使用2个队列,一旦第一个队列被填满,它就会被新队列替换,并且完整的队列(“第一个”)将被传递以进行进一步处理。这是我目前正在考虑的基本想法,但我仍然不知道它是否可行,因为我不确定我能否在Java中切换指针(以切换完整的队列)。
有什么建议吗?
谢谢
在我的场景中,我有一个Web层,每秒接收大约20,000个请求。我需要将其中一些请求累积到某些数据结构(也就是所需的缓冲区)中,当它满了时(假设它包含1000个对象),这些对象应该被序列化到一个文件中,然后发送到另一个服务器进行进一步处理。
实现应该是非阻塞的。 我检查了ConcurrentLinkedQueue,但我不确定它是否适合这项工作。
我认为我需要以某种方式使用2个队列,一旦第一个队列被填满,它就会被新队列替换,并且完整的队列(“第一个”)将被传递以进行进一步处理。这是我目前正在考虑的基本想法,但我仍然不知道它是否可行,因为我不确定我能否在Java中切换指针(以切换完整的队列)。
有什么建议吗?
谢谢