Q1)熟悉Java Disruptor模式的人是否知道他们对结果进行基准测试的消息大小?我正在编写一个类似的系统(出于纯粹的兴趣),当我阅读他们的测试描述时,没有提到发送的消息大小?
http://code.google.com/p/disruptor/wiki/PerformanceResults
Q2)是计算机与计算机通信或进程间隔的破坏者吗?我最初的印象是计算机到计算机,但他们的工作被标记为“inter thread”消息库?
答案 0 :(得分:10)
Disruptor不仅仅在同一台机器内,而且只需要一个进程。当他们说“线程间”时,它们意味着它是用于在一个进程的线程之间发送消息。
邮件大小实际上几乎无关紧要,因为邮件不会被复制。这些消息在开始时都已修复并重复使用,因此它们的大小并不重要。
答案 1 :(得分:1)
虽然我并不完全熟悉,但只是探索它......
1)从src中的perf test文件夹看,它们正在使用ValueEvent类,它只包含一个long,还有一些其他的xxxEvent类用于其他的perf测试稍微大一些但是从我到目前为止可以收集的内容来看,在环形缓冲区内只使用了很长的时间。
2)我认为这是完全相同的机器间线程通信。延迟&跨机器通信的不确定性会使它变得极其缓慢。 (相对)然后该项目还需要处理套接字通信,我在这个库中没有看到。
答案 2 :(得分:0)
1,干扰者不在乎消息的大小。但结果应该按消息大小线性下降(工作量增加,速度降低)
在行动中,它并不关心这个消息。
库的 KEY 是缓冲区的 ID 。指针,位置,光标,指示器,都意味着相同。 Disruptor将其称为“序列”
一旦ID到了,整个世界只归你所有!:)所以只有一位作家。真正的关键点。:))
2,不是C2C,也不是P2P :)。只是T2T。 T是线程。 peter-lawrey have a great library Java-Chronicle,可用于P2P案例。关于java dzone的新文章:http://java.dzone.com/articles/ultra-fast-reliable-messaging
3,核心模式应该能够克隆到跨界用例。每件事都是身份证。 关于消息,定制化。4,另一个重点是,缓存。 a great example on github
5,JDK8介绍一个新的注释 @Contended ,看起来很性感。 details about contended