请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Disruptor的使用场景

我想知道,Distuptor是否只适合异步处理的场景?
比如我在Springboot中整合好Disruptor,并在Springboot整合web的controller中使用生产者发送消息,当消费者处理完消息后,我想知道是否有办法将处理的结果同步响应给页面?就像如果我使用Springboot同步Servlet,我可以在controller中创建Future类型的异步线程来处理一些业务,最后将Future中返回结果响应给页面,虽然是异步处理的,但是响应给页面是同步的。
还有在Disruptor多生产者多消费者场景下。我在课程中听到老师说的其实是负载均衡来调用不同的消费者来处理相关逻辑的。那么如果生产者生产出多个同样的消息,给不同的消费者来处理,是否我的消费者的处理方法需要实现幂等,不然就会造成出错?这样的话,我是否还可以选择单消费者来处理这样的情况?
希望老师能耐心解答下,非常感谢!

正在回答

4回答

阿神 2018-10-07 15:36:44

disruptor主要是并发框架,代替arrayblockingqueue为主要的作用,实现高性能的队列,另外,多消费者不需要做幂等,因为本身自然做到了幂等的获取数据

0 回复 有任何疑惑可以回复我~
  • 提问者 夏好时光 #1
    明白了,感谢!
    回复 有任何疑惑可以回复我~ 2018-10-08 07:42:05
阿神 2018-10-07 19:08:46

第一个问题不是复杂的业务处理没有太大必要使用disruptor,如果可以用future能解决,那么future最好,当然disruptor不是一个异步的框架,如果需要做异步操作,需要自己做同步阻塞功能

0 回复 有任何疑惑可以回复我~
阿神 2018-10-07 15:38:40

单消费者也会出现问题,和多消费者没有关系

0 回复 有任何疑惑可以回复我~
阿神 2018-10-07 15:37:43

当然生产者如果出现重复消息则需要自己消费端幂等

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信