Key Value Store mit öffentlichem HTTP-Server

Ich schreibe einen Dienst, der HTTP-Umleitungen durchführt. Z.B

GET /key/0CC175B9C0F1B6A831C399E269772661 HTTP/1.0

Antwort

HTTP/1.0 301
Location: http://some-url/92EB5FFEE6AE2FEC3AD71C777531578F

Dies wird durch einen Schlüsselwertspeicher unterstützt und einige Millionen Artikel speichern.

Natürlich ist der Serverteil einfach zu implementieren, aber um die Anzahl der laufenden Dienste zu reduzieren, suche ich nach einem Schlüsselwertspeicher, der das Webserving für mich übernimmt.

Gibt es einen Schlüsselwertspeicher, der einen solchen öffentlich zugänglichen Webdienst unterstützt?

Ein Key-Value-Store, um wie zu adressieren? Von Java, PHP, Python…?
Am liebsten aus Java, aber ich hatte gehofft, dass etwas Passendes eine HTTP-Schnittstelle haben würde.
Azure Storage Tables klingt wie eine Übereinstimmung. Billig wie Chips, schnell wie eine Rakete, wenn die Partitionierung richtig gewählt ist.

Antworten (3)

Firebase Remote Config könnte dies möglicherweise tun. https://firebase.google.com/docs/remote-config

Wenn mir diese Aufgabe übertragen würde, würde ich mich an Openresty wenden, Sie brauchen nicht einmal den ganzen Kram, nur den lua-nginx-redis-Treiber für das lua-nginx-Modul, unter Ubuntu/Debian wird durch die Installation von lua-nginx-redis das gesamte nginx installiert Teile, die Sie brauchen. Und natürlich brauchst du Redis. Dieses Tutorial ist sehr eng - es führt eine interne Umleitung basierend auf dem Benutzeragenten durch. Es ist nicht schwer, dies basierend auf dem Anforderungs-URI in eine externe Weiterleitung umzuwandeln.

Der Vorgang beginnt damit, local key = ngx.var.http_user_agentdass Sie zu wechseln local key = ngx.var.http_user_agentmüssen local key = ngx.var.uri. set $target '';Sie können das Bit entfernen .

Am Ende statt ngx.var.target = hostnur tun return ngx.redirect($target). Sie können es entfernen, proxy_pass http://$target;da es nie erreicht wird.

Einen Nachteil dieser Lösung zu nennen, fällt mir schwer. Openresty ist gut gepflegt und extrem schnell. Redis ist auch für seine hervorragende Qualität bekannt. Die Menge an Code / Konfiguration, die gewartet werden muss, ist wirklich so gering wie möglich.

Ja, Redis war das erste, was mir in den Sinn kam

CouchDB - (Schlüssel, Dokument) statt (Schlüssel, Wert), kann aber trotzdem tun, was Sie wollen, und unterstützt auch Master/Master-Replikationscluster für hohen Nutzen.