草庐IT

阻塞队列--LinkedBlockingQueue

全部标签

详解如何保证消息队列不丢失消息(以kafka为例)

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心!✨✨ 🎈🎈作者主页:喔的嘛呀🎈🎈目录一、引言二.持久化存储2.1持久化存储原理:2.2使用示例:1.安装Kafka:2.生产者代码:3.消费者代码:三.消息确认机制3.1消息确认机制原理:3.2使用示例:1.生产者代码:2.消费者代码:四.事务机制4.1事务机制原理:4.2使用示例:1.生产者代码:2.消费者代码:五.数据备份与复制5.1数据备份与复制原理5.2使用示例:1.KafkaBroker配置:2.生产者代码3.消费者代码六.消息过期机制总结一、引言消息队列(MessageQueue)是一种用于在不同组件、服务或系统之间传递消

java - ActiveMQ 不从队列中取出消息

我最近将服务器从ActiveMQ从5.8升级到最新版本(5.11.1)。从那时起,我偶尔会注意到消息会在特定队列上堆积而不会被删除。我们的架构有一个生产者,一个消费者。我可以看到消费者仍然处于连接状态,但消息正在从生产者那里堆积起来。我的解决方案是通过Web控制台删除队列。之后,我立即看到消费者重新连接并再次开始处理消息。如果相关,在这种情况下,生产者在.NET上运行NMS,消费者在Java1.7上运行JMS。 最佳答案 当消费者连接到队列时,请从Web控制台检查队列中未提交的消息数。如果它大于零并且长时间没有变化,则意味着您的消费

java - 从 Flux 消费时按顺序调用非阻塞操作,包括重试

所以我的用例是在SpringWebflux应用程序中使用来自Kafka的消息,同时使用ProjectReactor以响应式(Reactive)风格进行编程,并按照从中接收消息的顺序对每条消息执行非阻塞操作卡夫卡。系统还应该能够自行恢复。这是设置为使用的代码片段:Flux>messages=Flux.defer(()->{KafkaReceiverreceiver=KafkaReceiver.create(options);returnreceiver.receive();});messages.map(this::transformToOutputFormat).map(this::p

java - 如何使用循环从 Java 中的队列中删除元素

我有这样的数据结构:BlockingQueuemailbox=newLinkedBlockingQueue();我正在尝试这样做:for(Mailmail:mailbox){if(badNews(mail)){mailbox.remove(mail);}}显然循环的内容会干扰边界并触发错误,所以我通常会这样做:for(inti=0;i但遗憾的是BlockingQueue没有通过索引获取或删除元素的功能,所以我被卡住了。有什么想法吗?编辑-一些说明:我的目标之一是保持相同的顺序,因此从头部弹出并放回尾部是不好的。此外,虽然没有其他线程会从邮箱中删除邮件,但它们会添加邮件,所以我不想在删除

java - 如果 Web 服务器是非阻塞的,这是否意味着它处理 IO 的方式与 node.js 相同?

我很快就会使用名为Undertow的服务器。website说:Undertowisaflexibleperformantwebserverwritteninjava,providingbothblockingandnon-blockingAPI’sbasedonNIO如果Undertow允许非阻塞,那和node.js一样吗?我指的不是语言或类似的东西。我有一个单独的项目,我认为node.js会是一个不错的选择,但如果我可以将单个产品用于多个项目,那将会很有帮助。编辑:我发现了这个问题。JavaNIOnon-blockingmodevsnode.jsasychronousoperatio

java - 无法获取线程转储?知道为什么我的应用程序会阻塞吗?

我有一个基本的Java服务器应用程序,它有100个工作线程,可以对URL执行简单的HEAD请求。我为此使用HttpClient4.x。运行几分钟后,我的程序就卡住了几分钟,我不明白为什么。查看visualvmmonitor报告的屏幕截图。你可以看到它是扁平的。在此期间,我无法获得良好的线程转储,而可视化虚拟机只是卡住,直到它被解锁。有没有人知道我可以做些什么来尝试开始调试这个人?可视化虚拟机:http://tinypic.com/view.php?pic=2i915bs&s=7这是我在卡住时尝试获取jstack转储时的输出:jstack-F4325AttachingtoprocessI

logging - Java 中的异步非阻塞远程日志记录?

是否有轻量级日志框架/服务器可用于在Java中设置远程日志记录?我知道log4j有SocketAppenders但a)我想要一个更开箱即用的库,我可以在其中简单地运行一个日志服务器,b)我希望日志记录调用是完全异步的非阻塞代码和c)日志服务器上基于Web的仪表板/查看器也不错 最佳答案 您可以将log4j与SyslogAppender一起使用,并使用一些tool用于查看系统日志(-ng)。使用log4j附带的异步附加器包装器,可以找到一篇关于它的不错的文章here. 关于logging-

java - java是否有索引的最小优先级队列?

我需要它来实现Dijkstra算法,我确实有自己的实现,但是使用java自己的类记录我的代码会更容易。 最佳答案 不,Java标准库没有这样的数据结构。我认为大多数人使用这个:http://algs4.cs.princeton.edu/24pq/IndexMinPQ.java.html 关于java-java是否有索引的最小优先级队列?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

java - 在 Java 的 ThreadPoolExecutor 中重新排序队列

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:JavaExecutors:howcanIsettaskpriority?我有一个使用LinkedBlockingDequeue构建的ThreadPoolExecutor,我想操纵底层队列,但是在文档中阅读它让我非常紧张。QueuemaintenanceMethodgetQueue()allowsaccesstotheworkqueueforpurposesofmonitoringanddebugging.Useofthismethodforanyotherpurposeisstronglydiscourag

java - 使用 Thrift 的非阻塞 SSL 服务器

Thrift提供了几种不同的非阻塞服务器模型,如TNonblockingServer、THsHaServer和TThreadedSelectorServer。但是,我想在服务器上启用SSL。似乎SSL仅适用于Thrift中的阻塞服务器。有人知道Thrift中非阻塞SSL服务器的线索吗?Java示例将不胜感激。 最佳答案 在您的Java应用程序中担心SSL的另一种方法是将nginx(http://wiki.nginx.org/SSL-Offloader)之类的东西作为反向代理。这样做的好处是您的应用程序不需要关心SSL,但确实需要在您