Lotou ist ein leichtes Framework für Game Server, der in Golang implementiert ist. Es wird die Kommunikation zwischen Knoten verwendet, indem es den Austausch von Nachrichten abstrahiert, sodass die Multi-Nodes und Multi-Services leicht erreicht werden können.
Lotou ist von dem von Cloudwu geschriebenen Framework -Skynet inspiriert. Innerhalb dieses Rahmens kommuniziert sich alle Dienste durch Nachrichten. Funktionen, die von Diensten geliefert werden, werden nicht durch API -Anrufe aufgedeckt. In der aktuellen Version ist Modul Core für Routing -Nachrichten verantwortlich, und jeder Dienst verfügt über eine eigene Nachricht zum Empfangen und Senden.
Kern liefert die Kommunikation zwischen Diensten. Alle Dienste sind auf core registriert und senden Nachrichten per Core.send an andere.
binary codiert Daten für die Kommunikation zwischen Servern und Clients in Binärstrom. Die Verwendung dieser Codierungskonvention ähnelt der Verwendung von JSON Marshalling.
Gob (nicht Gob in Golangs eigener LIB) Gob Coding zielt darauf ab, die Kommunikation von Knoten aufrechtzuerhalten. Die Kommunikation von Diensten kann Transnoten sein, sodass die Codierungsnachrichten in Binärstrom erforderlich sind. Meldungsschalter in Knoten müssen nicht für eine bessere Leistung codiert werden.
Alle primitiven Typen in Golang können codiert werden. Jede Kombination von Parametern wird leicht unterstützt, solange der Absender und der Empfänger dieselbe Signatur entsprechen
Selbstdefinierte Strukturen können ebenfalls unterstützt werden, aber die Struktur muss in Advanced registriert werden. Wenn verschiedene Knoten dieselbe Struktur verwenden müssen, muss die Registrierung dieser Strukturen in einer festen und eindeutigen Reihenfolge registriert werden.
Gegenwärtig sind Codierungsleistungen für Slice und MAP nicht so gut. Um die Art von []interface{} zu codieren, wird jede Elemente separat codiert. Um genauer zu sein, werden die Typinformationen für jede Elemente alle untersagt. Wenn also Elemente eines bestimmten gleichen Typs vorhanden sind, werden die Typinformationen redundant mediert.
Das Marshalle von Gob (Lotou) wird durch Reflect erreicht.
Das Modul des Protokolls dient zum Drucken von Debug- und Fehlerinformationen. Derzeit ist das Protokoll der synchronisierte Modus. Wenn wir zu viele Protokolle haben, die draht werden müssen, kann es die Hauptlogik blockieren. (Es kann eines Tages in den asynchronisierten Modus geändert werden)
Netzwerk implementiert die Routen zwischen Knoten in TCP. Rollen von server und client funktionieren als so genannte, wie sie genannt werden. Herzschlag wird noch nicht umgesetzt. client stellt zum ersten Mal des Sendens der Nachricht eine Verbindung zu seinem server her.
Multi-Knoten-Server basieren auf Topoloy. Es gibt zwei Arten von Knoten in Lotou und verschiedene Arten von Knoten werden in dasselbe Netzwerk zusammengefasst. In einem bestimmten Netzwerk gibt es nur einen Master -Knoten- und Server -Sklavenknoten. Dienstleistungen können in jeder Art von Knoten ausgeführt werden, und es gibt zwei Arten von Diensten: lokale Service und globaler Dienst. Lokaler Dienst sind diejenigen innerhalb desselben Knotens, die sich unter Namensnamen unterhalten. Der globale Service sind diejenigen, die von verschiedenen Knoten ausgeführt werden, und sie sind allen Diensten aller Knoten ausgesetzt, indem sie als Master registriert werden.
Wenn Sie an der Entwicklung von Lotou interessiert sind, können Sie mich gerne über mich kontaktieren
QQ 157621271
Wechat ID Daijun_1234.
Die QQ Lotou ist außerdem verfügbar
Twitter @Sydnash1
Ratschläge und Geeks sind immer begrüßt.
Verwenden Sie etcd als Service Discover.
Verwenden Sie nats als Knotenmeldung Diliver.