Hazelcast jet中的堆内存已满

Hazelcast jet中的堆内存已满,hazelcast,producer-consumer,hazelcast-jet,Hazelcast,Producer Consumer,Hazelcast Jet,我有一个客户机和服务器应用程序,其中客户机使用WebSockets从服务器接收数据 客户端应用程序是使用Hazelcast Jet来处理服务器提供的数据而构建的。ClientApplication将数据存储在队列中,并在队列准备进一步处理时轮询它。与服务器相比,客户机的速度相对较慢,所以数据会连续插入客户机队列,直到堆满为止。我想知道是否有任何Hazelcast Jet功能可用于解决此问题 注意:我不希望生产者停止生产数据或客户端停止接收数据。我希望客户能够继续接收数据并尽快处理 我想到的解决方

我有一个客户机和服务器应用程序,其中客户机使用WebSockets从服务器接收数据

客户端应用程序是使用Hazelcast Jet来处理服务器提供的数据而构建的。ClientApplication将数据存储在队列中,并在队列准备进一步处理时轮询它。与服务器相比,客户机的速度相对较慢,所以数据会连续插入客户机队列,直到堆满为止。我想知道是否有任何Hazelcast Jet功能可用于解决此问题

注意:我不希望生产者停止生产数据或客户端停止接收数据。我希望客户能够继续接收数据并尽快处理


我想到的解决方案是将从服务器接收的数据写入文件,而不是存储在队列中并从中读取数据,这可以解决内存问题。这是处理这个用例的正确方法还是有更好的解决方案

我正在使用com.aol.simple.react.async.Queue;Jet中没有任何东西可以用来在下游阶段缓慢处理数据时持久化数据。通常的方法是施加背压。在您的情况下,可能是不从websocket读取。如果另一端的软件无法处理背压,则需要将队列替换为可持久的队列。然后,将数据存储在文件中并从中读取是解决此问题的方法?您提出的问题非常模糊,但如果内存不足,则显然,将数据保存到文件是解决此问题的一种方法。