Saturday 14 October 2017

Akka Handelssystem


Schauspieler Modell. Das Schauspieler Modell bietet eine höhere Ebene der Abstraktion für das Schreiben von gleichzeitigen und verteilten Systemen Es lindert den Entwickler, mit expliziten Sperren und Thread-Management zu behandeln, so dass es einfacher, korrekte gleichzeitige und parallele Systeme zu schreiben. Mehr wurden im Jahr 1973 definiert Papier von Carl Hewitt, wurde aber von der Erlang-Sprache populär und wurde zum Beispiel bei Ericsson mit großem Erfolg verwendet, um hochkonzertierte und zuverlässige Telekommunikationssysteme zu bauen. Verteilt durch Default. Everything in ist entworfen, um in einer verteilten Einstellung zu arbeiten, die alle Interaktionen der Akteure verwenden Reinem Meldungsübergang und alles ist asynchron. Diese Bemühungen wurden unternommen, um sicherzustellen, dass alle Funktionen gleichermaßen verfügbar sind, wenn sie innerhalb eines einzigen Prozesses oder auf einem Haufen von Hunderten von Maschinen laufen. Der Schlüssel, um dies zu ermöglichen, geht von Remote zu lokal über Optimierung statt zu versuchen, von lokal zu remote durch Verallgemeinerung zu gehen Siehe dieses klassische Papier für eine ausführliche Diskussion darüber, warum der zweite Ansatz ist verpflichtet zu scheitern. Supervision Monitoring. Akteure bilden einen Baum mit Schauspielern Eltern zu den Schauspielern, die sie erstellt haben. Als Elternteil ist der Schauspieler verantwortlich für die Handhabung seiner Kinder s Ausfälle so genannte Überwachung, bilden eine Kette von Verantwortung, den ganzen Weg an die Spitze Wenn ein Schauspieler abstürzt, kann seine Eltern entweder neu starten oder stoppen, oder eskalieren den Ausfall Die Hierarchie der Akteure Dies ermöglicht eine saubere Menge von Semantik für die Verwaltung von Ausfällen in einem gleichzeitigen, verteilten System und ermöglicht das Schreiben von hochfehlertoleranten Systemen, die sich selbst heilen. Lassen Sie sich ein hypothetisches HFT-System in Java vorstellen, erfordert sehr geringe Latenz, Mit vielen kurzlebigen Kleinobjekten etwas wegen der Unveränderlichkeit Scala, Tausende von Verbindungen pro Sekunde und einer obszönen Anzahl von Nachrichten, die sich in einer ereignisgesteuerten Architektur akka und amqp. For die Experten da draußen, was wäre hypothetisch das Beste sein Tuning für JVM 7 Welche Art von Code würde es glücklich machen würde Scala und Akka bereit für diese Art von systems. Note Es gab einige ähnliche Fragen, wie diese, aber ich habe noch eine Abdeckung Scala, die ihre eigene idiosynkratische Fußabdruck hat zu finden In der JVM. asked Mar 30 12 bei 23 15. Es ist möglich, sehr gute Leistung in Java zu erreichen Allerdings muss die Frage mehr spezifisch sein, um eine glaubwürdige Antwort zu geben Ihre wichtigsten Quellen der Latenz kommen aus folgen nicht erschöpfende list. How Viel Müll Sie schaffen und die Arbeit des GC zu sammeln und zu fördern Unveränderliche Designs in meiner Erfahrung passen nicht gut mit Low-Latency GC Tuning muss ein großer Fokus sein. Warm up der JVM, so dass Klassen geladen werden und die JIT hat Hatte Zeit, seine Arbeit zu machen. Entwerfen Sie Ihre Algorithmen, um O 1 oder zumindest O log2 n zu sein, und haben Leistungsprüfungen, die dies behaupten. Ihr Entwurf muss lock-frei sein und dem Single Writer Principle folgen. Ein erheblicher Aufwand muss sein Verständigen den ganzen Stack und zeigen mechanische Sympathie in seinem use. Design Ihre Algorithmen und Datenstrukturen zu Cache-freundlichen Cache Misses in diesen Tagen sind die größten Kosten Dies ist eng verwandt mit Prozess-Affinität, die, wenn nicht richtig eingerichtet kann Ergebnis und erhebliche Cache Verschmutzung Dies wird mit Sympathie für das Betriebssystem und sogar einige JNI-Code in einigen Fällen. Ensure Sie haben genügend Kerne, so dass jeder Thread, der ausgeführt werden muss, hat einen Kern zur Verfügung, ohne zu warten. Ich habe vor kurzem über eine Fallstudie einer solchen Übung blogged. Sie können feststellen, dass die Verwendung eines Ringpuffers für die Nachrichtenübergabe übertreffen wird, was mit Akka getan werden kann. Die wichtigste Ringpufferimplementierung, die Menschen auf der JVM für Finanzanwendungen verwenden, ist eine, die Disruptor genannt wird, die sorgfältig auf Effizienz von zwei Größen abgestimmt ist, Für die JVM keine GC, keine Schlösser und für moderne CPUs keine falsche Freigabe von Cache-Zeilen. Hier ist eine Intro-Präsentation aus einer Scala Sicht und es gibt Links auf der letzten Folie auf die ursprüngliche LMAX stuff. answered Jul 3 12 bei 3 52.Sehr interessant Vielen Dank für den Austausch von Hugo Sereno Ferreira Jul 10 12 bei 19 20.Ihr Antwort.2017 Stack Exchange, Inc. Scala Backtesting Live Trading Framework auf Akka Spray gebaut. Was ist es gut für. Dieses Framework kann nützlich sein Für Leute, die aus dem Scala-Hintergrund kommen, die ihre ersten Schritte im Back-Live-Test automatisierte Handelsstrategien mit Oanda s REST API machen, was meiner Meinung nach einer der besten verfügbaren Einzelhandels-APIs ist. Da dies in Arbeit ist, wenn Sie ein Scala-Enthusiast sind Und interessieren sich für automatisierte Handel, haben einen Blick und fühlen sich frei zu Gabel Repo und beitragen. Just Klon der Repo und fallen Sie Ihre Handelslogik in Don t vergessen zu ändern, um Ihre eigene Konto-ID und Zugriffstoken für Oanda s REST API. Note gehören Wenn Sie einfach auf der Suche nach einem Weg, um Oanda REST API mit Scala Akka zu verbinden, schauen Sie sich meine Scalanda Projekt. Sie ​​können t durchführen, um diese Aktion zu diesem Zeitpunkt. Sie ​​unterschrieben mit einem anderen Tab oder Fenster Reload, um Ihre Sitzung zu aktualisieren Sie unterzeichneten In einem anderen Tab oder Fenster Reload, um Ihre Sitzung zu aktualisieren.

No comments:

Post a Comment