Disruptor.NET 메시징 프레임 워크를 사용하는 방법을 배우려고하는데 실용적인 예제를 찾을 수 없습니다. 어떻게 작동하는지에 대한 사진이있는 꽤 많은 기사가 있지만 실제로 갈 곳을 찾지 못하고 메서드를 구현하는 방법을 보여줍니다. 예를 들면?Disruptor.NET 예제
답변
Disruptor-net에 대해 'Hello World'를 찾을 수 없다는 사실에 좌절감을 느꼈습니다. 다행히도 그것은 자명하다. Console.WriteLine
라인은 물건이 어떻게 작동하는지보기에 편리합니다. 예를 들어, RingBuffer가 시작할 때 각 엔트리 인스턴스를 만듭니다 (이는 의미가 있습니다).
희망이 있으면 Disruptor on .NET에 대한 도움을 얻는 사용자에게 도움이 될 것입니다.
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Disruptor;
using Disruptor.Dsl;
namespace DisruptorTest
{
public sealed class ValueEntry
{
public long Value { get; set; }
public ValueEntry()
{
Console.WriteLine("New ValueEntry created");
}
}
public class ValueAdditionHandler : IEventHandler<ValueEntry>
{
public void OnNext(ValueEntry data, long sequence, bool endOfBatch)
{
Console.WriteLine("Event handled: Value = {0} (processed event {1}", data.Value, sequence);
}
}
class Program
{
private static readonly Random _random = new Random();
private static readonly int _ringSize = 16; // Must be multiple of 2
static void Main(string[] args)
{
var disruptor = new Disruptor.Dsl.Disruptor<ValueEntry>(() => new ValueEntry(), _ringSize, TaskScheduler.Default);
disruptor.HandleEventsWith(new ValueAdditionHandler());
var ringBuffer = disruptor.Start();
while (true)
{
long sequenceNo = ringBuffer.Next();
ValueEntry entry = ringBuffer[sequenceNo];
entry.Value = _random.Next();
ringBuffer.Publish(sequenceNo);
Console.WriteLine("Published entry {0}, value {1}", sequenceNo, entry.Value);
Thread.Sleep(250);
}
}
}
}
또한 메모를 추가하여 실행할 수 있습니까? 어떤 DLL을 프로젝트에 추가해야합니까? 어딘가에서 다운로드해야합니까, 아니면 직접 제작해야합니까? – javapowered
도 예제를 탐색 할 수 있습니까? 왜 표준 .net 라이브러리보다 낫지? 얼마나 많은 스레드가 관련되어 있습니까? 딱 하나만? 스레드 생성을 볼 수 없습니다. – javapowered
Disruptor 패턴을 사용하는 대부분의 사람들은 3 단계 파이프 라인을 사용하고 있기 때문에 Input Disruptor 및 Output Disruptor가있는 예제와 함께 사용하면 좋습니다. – Fred
스럽 패턴에 대한 자세한 블로그 게시물이 있습니다, The Latency Issue. Disruptor를 시작하고 사용하는 방법을 자세히 보여줍니다.
이 링크는 오래되었습니다. 새 링크는 http://www.tradesharp.se/over-6-million-transactions-per-second-in-a-real-time-system-an-out-of-the-box-approach/ –
새 링크입니다. 너무 오래되었습니다. – Ozgur
- 1. 예제 엔진에 대한 예제 코드
- 2. 다형성과 상속 (예제 문제 예제)
- 3. 예제 별 튜토리얼 요청 예제 및 Capybara
- 4. NSWindow 예제
- 5. SetSelectionContainer 예제
- 6. IronPython 예제
- 7. ReceiveFromAsync 예제
- 8. SimpleExpandableListAdapter의 예제
- 9. System.Speech.Synthesis.TtsEngine의 예제?
- 10. backbone.js 예제
- 11. Zend_Navigator 예제?
- 12. TTPickerTextField 예제
- 13. 람다 예제
- 14. Ant4Eclipse 예제
- 15. CssResource 예제?
- 16. Reduce3 예제
- 17. 예제 C#
- 18. 코드 예제
- 19. mlbench 예제
- 20. 테스트 구동 개발 예제 예제 작성자 : Kent Beck
- 21. Spring 3.1 및 JQuery EasyUI DataGrid : 예제 HashMaps 보내기, 예제?
- 22. CMMotionManager 예제 예제 4-9 및 4-10
- 23. jQuery 자동 제안 예제
- 24. Joid에 대한 Void * 예제
- 25. . NET Gridview 테마 예제
- 26. Lucene.NET MoreLike이 예제
- 27. iPhone/iPad C++ 예제
- 28. WebRequest.Create (MSDN 예제)
- 29. 안드로이드리스트 뷰 ArrayAdapter 예제
- 30. 간단한 SOAP 예제
이 질문을 통해 아직 보지 못한 몇 가지 정보를 얻을 수 있습니다. http://stackoverflow.com/questions/6933347/how-should-one-use-disruptor-disruptor-pattern-to-build-real- world-message-sys –
[공식 프로젝트 위키] (http://code.google.com/p/disruptor-net/w/list)에는 몇 가지 정보가 있습니다. – caesay
그들의 코드 예제가 오래된 것 같습니다. 예를 들어 현재 빌드에서 "IBatchHandler"인터페이스를 찾을 수없고 RingBuffer의 매개 변수가 완전히 다른 매개 변수를 가진 것처럼 보입니다. 그것은 공식 사이트가 GitHub로 이동했지만 사이트에서 추가 예제/문서를 찾을 수없는 것 같습니다 (하지만 내가 제대로하고 있는지 모르겠습니다) - https://github.com/odeheurles/ Disruptor-net # readme – William