Key Value Store con servidor HTTP público

Estoy escribiendo un servicio que realizará redireccionamientos HTTP. P.ej

GET /key/0CC175B9C0F1B6A831C399E269772661 HTTP/1.0

respuesta

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

Esto estará respaldado por una tienda de clave-valor y almacenará unos pocos millones de artículos.

Por supuesto, la parte del servidor es simple de implementar, pero para reducir la cantidad de servicios en ejecución, estoy buscando un almacén de valores clave que se encargue del servicio web por mí.

¿Existe una tienda de clave-valor que sea un servicio web tan público?

Una clave-valor-almacén para abordar ¿cómo? ¿Desde Java, PHP, Python…?
Preferiblemente de Java, pero esperaba que algo que coincidiera con la factura tuviera una interfaz HTTP.
Azure Storage Tables suena como una coincidencia. Barato como un chip, rápido como un cohete si la partición se selecciona correctamente.

Respuestas (3)

Firebase Remote Config posiblemente podría hacer esto. https://firebase.google.com/docs/remote-config

Si me dieran esta tarea, recurriría a Openresty, ni siquiera necesita todo el shebang, solo el controlador lua-nginx-redis para lua-nginx-module, en Ubuntu/Debian, la instalación de lua-nginx-redis instalará todo el nginx piezas que necesita. Y, por supuesto, necesitará Redis. Este tutorial es extremadamente cercano: realiza una redirección interna basada en el agente de usuario. Convertir eso en una redirección externa basada en el URI de solicitud no es difícil.

Comienza el proceso con la local key = ngx.var.http_user_agentnecesidad de cambiar local key = ngx.var.http_user_agenta local key = ngx.var.uri. Puedes quitar la set $target '';broca.

Al final en lugar de ngx.var.target = hostsimplemente hacer return ngx.redirect($target). Puede eliminar proxy_pass http://$target;ya que nunca se alcanzará.

Sería difícil nombrar una desventaja de esta solución. Openresty está bien mantenido y es extremadamente rápido. Redis también es conocido por ser de excelente calidad. La cantidad de código/configuración a mantener es realmente la menor posible.

Sí, Redis fue lo primero que me vino a la mente.

CouchDB: (clave, documento) en lugar de (clave, valor), pero aún puede hacer lo que desee y también es compatible con el clúster de replicación maestro/maestro para un alto rendimiento.