Cae*_*alf 5 java concurrency persistent-storage blockingqueue
TL; 博士; 我需要知道是否有一个具有持久阻塞队列的库。
我有一个经典的生产者/消费者计划。他们共享一个LinkedBlockingQueue来共享数据,我BlockingQueue#take在消费者中使用方法,因为我需要他们永远活着等待新元素。
问题是我有很多数据,我不能丢失它们。即使在消费者停止之后,生产者也可以坚持生成一些数据。我正在考虑H2在达到某个阈值后实现我的 BlockingQueue ta 用于存储/获取数据。我的主要问题是我需要性能,我需要按照元素的创建顺序使用它们。
是否有持久阻塞队列的实现可以用于这样的事情?如果没有,对我实现这样的目标有什么建议吗?
我将使用 ActiveMQ lib 和 Spring JMS,这是一个使用示例
启动经纪人
BrokerService broker = new BrokerService();
broker.addConnector("tcp://localhost:61616");
broker.start();
Run Code Online (Sandbox Code Playgroud)
读取消息
ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");
JmsTemplate t = new JmsTemplate(cf);
Message msg = t.receive();
Run Code Online (Sandbox Code Playgroud)
发信息
ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");
JmsTemplate t = new JmsTemplate(cf);
t.send("test", new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("test");
}
});
Run Code Online (Sandbox Code Playgroud)