Zurück zum Blog

Folgen und abonnieren

Nur auf Englisch verfügbar

Diese Seite ist momentan nur auf Englisch verfügbar. Wir entschuldigen uns für die Unannehmlichkeiten. Bitte besuchen Sie diese Seite später noch einmal.

Echtzeitentwicklung mit Pushpin

Ashley Vassell

Product Manager, Fastly

Gute Neuigkeiten! Pushpin ist jetzt Teil von Fast Forward, unserem Community-Programm zur gemeinschaftlichen Schaffung eines guten, offenen Internets. Pushpin ist nicht nur ein Proxyserver, der Client-Verbindungen offen hält und so die Einrichtung von Echtzeit-API-Endpoints erleichtert, sondern gleichzeitig auch die Open-Source-Implementierung von Fanout, dem Edge-Messaging-System von Fastly. Pushpin unterstützt HTTP-Streaming, HTTP-Long-Polling und WebSockets. Da Pushpin ein Proxyserver ist, kann das Backend in jeder beliebigen Sprache geschrieben werden – praktische Bibliotheken helfen bei der Integration.

Diese einzigartige Kommunikationsschnittstelle ist äußerst vielseitig und eignet sich perfekt für den Einsatz mit Ihren bestehenden APIs und Microservices.

  • Die gesamte Logik an einem Ort: Ein separates Backend in einer anderen Sprache nur für den Echtzeitbetrieb ist nicht notwendig.

  • Perfekt für Microservices: Zentralisierte Messaging Broker waren gestern, denn jeder Microservice hat seine eigene Pushpin Instanz.

  • Zustandslose Entwicklung: Pushpin behält den Zustand für Sie im Blick und eignet sich daher auch hervorragend für serverlose Backends.

  • Perfekte Skalierbarkeit: Pushpin ist horizontal skalierbar. Sie müssen lediglich zusätzliche Instanzen hinzufügen.

Wie funktioniert Pushpin?

Pushpin kommuniziert mithilfe von regulären, kurzlebigen HTTP-Anfragen mit Webanwendungen im Backend. So können Backend-Anwendungen in jeder Sprache geschrieben werden und jeden Webserver nutzen. Bei der Integration gibt es zwei wichtige Punkte zu beachten:

  • Das Backend verarbeitet über einen Proxyserver weitergeleitete Anfragen. Bei HTTP wird jede eingehende Anfrage über einen Proxyserver an das Backend weitergeleitet. Bei WebSockets wird die Aktivität jeder Verbindung in eine Reihe von HTTP-Anfragen umgewandelt, die an das Backend weitergeleitet werden. Das Verhalten von Pushpin wird durch die Reaktion des Backends auf diese Anfragen bestimmt.

  • Das Backend weist Pushpin an, Daten per Push-Verbindung zu übertragen. Unabhängig von der Verbindung zu den Clients können die Daten durch eine HTTP-POST-Anfrage an die private Kontroll-API von Pushpin übermittelt werden. Pushpin leitet diese Daten an alle Client-Verbindungen weiter, die diesen Kanal abhören.

Pushpin lässt sich auf verschiedene Arten in Ihre bestehende Architektur integrieren:

Einfaches Backend:

Am häufigsten wird Pushpin vor einem typischen Webservice-Backend eingesetzt, das die Daten direkt auf Pushpin veröffentlicht. Der Webservice selbst kann Daten als Reaktion auf eingehende Anfragen veröffentlichen. Die Veröffentlichung kann aber auch durch einen Prozess/Job im Hintergrund erfolgen.

API-Verwaltung:

Da die meisten API-Verwaltungssysteme zugleich als Proxyserver fungieren, lässt sich Pushpin auch mit solchen Systemen kombinieren. Sie müssen Ihre Proxyserver einfach nur miteinander verknüpfen. 

Messaging-Warteschlange:

Wenn Sie große Datenmengen pushen möchten, können Sie auch eine Messaging-Warteschlange zwischenschalten. Sobald sich Daten in der Messaging-Warteschlange befinden, lassen sie sich mithilfe von Backend-Prozessen über einen Adapter an eine oder mehrere Pushpin Instanzen mit Abonnenten für einen bestimmten Kanal weiterleiten.

Microservices:

In einer Microservice-Umgebung lassen sich beispielsweise sofortige Updates von anderen Microservices abrufen, ohne dass dafür ein zentralisierter Messaging Broker erforderlich ist. Jeder Microservice erhält seine eigene Pushpin Instanz, wobei die Microservices untereinander über die APIs Ihres Unternehmens – und nicht etwa über einen anbieterspezifischen Mechanismus – kommunizieren.

Community und Ressourcen:

Bereit für den Einstieg mit Pushpin? Wir haben eine Reihe von Ressourcen zusammengestellt, die Ihnen den Einstieg erleichtern, darunter auch einige Echtzeitbeispiele auf Pushpin.org

  • Live-Texteditor – Erfahren Sie in einer kollaborativen Umgebung, wie Sie mithilfe von Funktionsumwandlungen einen kollaborativen Texteditor erstellen können.

  • Leaderboard  – Nutzen Sie Pushpin, um nach bestimmten Kriterien geordnete Punktestände per HTTP-Streaming anzuzeigen.

  • Multi-User-Chat – Erstellen Sie mithilfe von HTTP-Streaming einen Chat für mehrere Nutzer.

  • To-Do-List – Erstellen Sie eine interaktive To-do-Liste, bei der Updates über Pushpin gesendet werden.

  • Webhook-Inbox – Erstellen Sie in wenigen Schritten temporäre URLs, die in der Lage sind, Webhooks zu empfangen und zu speichern. Die Nutzeroberfläche zeigt neue eingehende Webhook-Anfragen in Echtzeit an.

Bei Fragen oder wenn Sie mehr über Pushpin erfahren möchten, besuchen Sie das Projekt auf GitHub, unser neues Entwicklerforum, den Issue Tracker oder kontaktieren Sie uns auf Twitter (@pushpinorg). Kommerzielle Unterstützung für Pushpin erhalten Sie von Fastly Fanout.

Open-Source-Software:

Pushpin ist nicht nur ein Proxyserver, der Client-Verbindungen offen hält und so die Einrichtung von Echtzeit-API-Endpoints erleichtert, sondern gleichzeitig auch die Open-Source-Implementierung von Fanout, dem Messaging-System von Fastly im Pub/Sub-Stil. Open Source gehört bei Fastly zur DNA. Unsere Lösungen basieren auf Open Source und wir stellen den Code für unsere eigenen Projekte nach Möglichkeit ebenfalls der Open-Source-Community zur Verfügung. Außerdem haben wir Fast Forward kostenlose Services im Wert von 50 Millionen US-Dollar zur Verfügung gestellt, um Projekte zu unterstützen, die das Internet und unsere Produkte antreiben. Um Pushpin und Fanout zu ermöglichen, haben wir Folgendes verwendet: 

  • Rust – Systemprogrammiersprache

  • ZeroMQ – Universelle Messaging-Bibliothek

  • Qt – Grundlegende C++ Bibliothek

  • OpenSSL – Allgemeine Kryptografie und sichere Kommunikation

  • Httparse – Push-Bibliothek zum Parsen von HTTP/1.x-Anfragen und -Antworten

Es ist uns wichtig, einen Beitrag zur Community zu leisten. Aus diesem Grund haben wir die Problemlösungen und Bug Fixes, die wir im Rahmen unserer Arbeit vorgenommen haben, veröffentlicht. Wir möchten uns abschließend von ganzem Herzen bei denjenigen bedanken, die diese Projekte in die Tat umgesetzt haben. Wenn Sie ein Open-Source-Maintainer oder -Beitragender sind und sich für eine Teilnahme an Fast Forward interessieren, kontaktieren Sie uns hier.