GitHub - mailrusurgemq

A GitHub több mint 50 millió fejlesztőnek ad otthont, amelyek együttesen működnek együtt kódok befogadásában és felülvizsgálatában, projektek kezelésében és szoftverek építésében.

egyszer ahol

A GitHub az, ahol a világ szoftvereket épít

Fejlesztők és vállalatok milliói építik, szállítják és tartják karban szoftverüket a GitHubon - a világ legnagyobb és legfejlettebb fejlesztői platformján.

Használja a Git vagy a checkout SVN használatát a web URL segítségével.

Dolgozzon gyorsan a hivatalos CLI-vel. Tudj meg többet.

A GitHub Desktop elindítása

Ha nem történik semmi, töltse le a GitHub Desktop alkalmazást, és próbálja újra.

A GitHub Desktop elindítása

Ha nem történik semmi, töltse le a GitHub Desktop alkalmazást, és próbálja újra.

Az Xcode elindítása

Ha semmi sem történik, töltse le az Xcode-ot és próbálja újra.

A Visual Studio elindítása

Legutóbbi elkötelezettség

Git statisztika

Fájlok

Nem sikerült betölteni a legfrissebb végrehajtási információkat.

README.md

Ez egy vadonatúj projekt, amely az eredeti műtéten alapul.

A SurgeMQ egy nagyteljesítményű MQTT közvetítő és kliens könyvtár, amelynek célja, hogy teljes mértékben megfeleljen az MQTT 3.1 és 3.1.1 specifikációknak. Az elsődlegesen érdekes csomag a csomagszolgáltatás. Könyvtári formában biztosítja az MQTT kiszolgáló és kliens szolgáltatásokat.

Ezt a projektet további értesítésig instabilnak kell tekinteni.

Az MQTT specifikáció szerint:

Az MQTT egy kliens kiszolgáló közzétételi/feliratkozási üzenetküldő protokoll. Könnyű, nyitott, egyszerű és könnyen kivitelezhető. Ezek a jellemzők ideálisak sok helyzetben történő felhasználásra, ideértve a korlátozott környezeteket is, például a gépről gépre (M2M) és a tárgyak internete (IoT) környezetben folytatott kommunikációra, ahol kis kódra van szükség és/vagy a hálózati sávszélesség kiemelkedő.

A protokoll TCP/IP vagy más hálózati protokollok felett fut, amelyek rendezett, veszteségmentes, kétirányú kapcsolatokat biztosítanak. Jellemzői:

  • A közzététel/feliratkozás üzenetmintázatának használata, amely biztosítja az egy-sok üzenet terjesztését és az alkalmazások leválasztását.
  • Olyan üzenetküldő szolgáltatás, amely agnosztikus a hasznos tartalom szempontjából.
  • Az üzenet kézbesítésének három minősége:
    • "Legfeljebb egyszer", ahol az üzenetek az operációs környezet legjobb erőfeszítései szerint érkeznek. Előfordulhat üzenetvesztés. Ez a szint használható például a környezeti érzékelő adatokkal, ahol nem mindegy, hogy elveszik-e az egyéni olvasmány, mivel a következő nem sokkal később jelenik meg.
    • "Legalább egyszer", ahol biztos az üzenetek érkezése, de előfordulhatnak ismétlődések.
    • "Pontosan egyszer", ahol az üzenet biztosan pontosan egyszer érkezik. Ez a szint alkalmazható például olyan számlázási rendszereknél, ahol az ismétlődő vagy elveszett üzenetek helytelen díjak felszámolásához vezethetnek.
  • A hálózati forgalom csökkentése érdekében minimálisra csökkent egy kis szállítási költség és protokollcsere.
  • Az érdekelt felek értesítésének mechanizmusa rendellenes lekapcsolás esetén.

Az MQTT, például a Facebook Messenger, nagyon nagy mértékben megvalósult. Van egy aktív Eclipse projekt, a Paho is, amely skálázható nyílt forráskódú kliens megvalósításokat kínál számos különböző nyelv számára, beleértve a C/C ++, Java, Python, JavaScript, C # .Net and Go.

Jellemzők, korlátozások és jövő

Jellemzők

  • Támogatja a QOS 0, 1 és 2 üzeneteket
  • Támogatja az akaratüzeneteket
  • Támogatja a megtartott üzeneteket (hozzáadás/eltávolítás)
  • Nagyjából mindent a specifikációban, kivéve az alábbi listát

Korlátozások

  • Az összes támogatott funkció csak a memóriában található. A kiszolgáló újraindítása után minden törlődik.
    • Mindazonáltal az összes összetevőt plug-in-ként írják, így a Go-interfészek alapján a plug-inek írhatók.
  • Az újracsatlakozáskor az üzenet továbbítása jelenleg nem támogatott.
  • Az üzenet offline sorban állása a kapcsolat bontásakor nem támogatott. Bár ez sem külön követelmény az MQTT esetében.

Jövő

  • Üzenet újraküldése (DUP)
  • $ SYS témakörök
  • Szerver híd
  • Ack időtúllépés/újrapróbálkozás
  • A munkamenet kitartása
  • Jobb hitelesítési modulok

A SurgeMQ jelenlegi teljesítménymércéje, amely minden kiadót, előfizetőt és brókert egyetlen 4 magos (2,8 GHz-es i7) MacBook Pro-val futtat, képes elérni:

  • felett 400 000 MPS 1: 1 egy kiadó és egy gyártó konfigurációban
  • felett 450 000 MPS 20: 1 arányú ventilátor-konfigurációban
  • felett 750 000 MPS 1: 20-as rajongói kimeneti konfigurációban
  • felett 700 000 MPS teljes hálós konfigurációban, 20 ügyféllel

Ezenkívül a SurgeMQ-t a következő ügyfélkönyvtárakkal tesztelték, és úgy tűnik, hogy működik:

  • libmosquitto 1.3.5 (C-ben)
    • Tesztelve a mellékelt tesztprogramokkal: msgsps_pub és msgsps_sub
  • Paho MQTT Conformance/Interoperability Testing Suite (Python-ban). Mind a 10 tesztesettel tesztelve 3 nem ment át. Ők
    1. "offline üzenetek várakozási sor teszt", amelyet a SurgeMQ nem támogat
    2. "újraterjesztés az újracsatlakozási teszten", amelyet a SurgeMQ még nem hajtott végre
    3. "előfizetés hiba teszt futtatása", amely nem érvényes teszt
  • Paho Go kliens könyvtár (Go-ban)
    • A könyvtár egyik tesztjével tesztelve valójában ez a teszt a SurgeMQ tesztjének része
  • Paho C kliens könyvtár (C betűvel)
    • Tesztelve a legtöbb tesztesettel, és nem felel meg a megfelelőségi tesztnek, mert a funkciók még nincsenek megvalósítva.
    • Valójában azt hiszem, van egy hiba a tesztcsomagban, mivel a PUBLISH kezelő funkciót hívja a nem PUBLISH üzenetekhez.

A dokumentáció elérhető a godoc oldalon.

További információk a SurgeMQ kialakításáról a zen 3.1 címen érhetők el.

Az Apache licenc 2.0 verziója (a továbbiakban: „licenc”) alatt licencelt; csak a Licenc betartásával használhatja ezt a fájlt. A licenc másolatát a következő címen szerezheti be:

Hacsak az alkalmazandó törvény nem írja elő, vagy írásban beleegyezik, a Licenc alapján terjesztett szoftvert "MINDIG IS" ALAPON terjesztik, kifejezett vagy hallgatólagos garanciák és bármilyen feltétel nélkül. A licenc alatt találja az engedélyeket és korlátozásokat szabályozó nyelvet.

A pingmq-t azért fejlesztették ki, hogy bemutassa a SurgeMQ használatát. Ebben az egyszerűsített használati esetben a hálózati rendszergazda beállíthatja a szerver üzemidő-felügyeleti rendszerét úgy, hogy rendszeresen elküldi az ICMP ECHO_REQUEST-ot a hálózatuk összes IP-jének, és az eredményeket elküldi a SurgeMQ-nak.

Ezután több ügyfél feliratkozhat az eredményekre a különböző igényeik alapján. Például egy ügyfelet talán csak a sikertelen ping-kísérletek érdekelnek, mivel ez azt jelezheti, hogy a gazdagép nem működik. Bizonyos számú hiba után az ügyfél emelhet valamilyen típusú zászlót, hogy jelezze a gazdagépet.

A pingmq itt érhető el, a dokumentáció pedig a godoc oldalon érhető el. Túlfeszültséget/pinget használ a pingek végrehajtásához.