Introducción

Esto continúa mi serie "Getting Comfortable with Couchbase Mobile" (post #5). Esta vez exploraremos Pasarela de sincronización desde la línea de comandos. Esto puede ser realmente útil, tanto para la comprensión como para las pruebas y la depuración. (Al final se incluyen enlaces a otros posts de la serie).

Couchbase Mobile Stack

Fondo

Para sentirse cómodo con el conjunto Couchbase Móvil pila, es genial para instalar y ejecutar todo en una sola máquina. En esta serie de entradas, voy a caminar a través de los pasos para empezar con cada componente. Voy a mostrar cómo hacer un poco de exploración extra en el camino, también.

Sólo haré una configuración mínima. Esto no pretende explicar lo que necesitas para un entorno de producción. Asumo que estás familiarizado con algunos conceptos básicos de NoSQL, tienes alguna comprensión de Couchbase, y sabes cómo construir aplicaciones en algo como Java, Android o iOS. Si quieres leer más sobre bases de datos NoSQL o Couchbase, puedes encontrar un montón de recursos en la web Couchbase sitio.

Couchbase es de código abierto. Todo lo que usaré aquí es gratis para probar. Mira al final del post para más recursos si necesitas ayuda.

Pasarela de sincronización

Sync Gateway es una aplicación web segura con APIs de sincronización, REST, stream, batch y eventos para acceder y sincronizar datos a través de la web. Sync Gateway permite, entre otras cosas, la replicación segura de datos entre Couchbase Server y Couchbase Lite.

Sync Gateway tiene pocas dependencias y puede ejecutarse en la mayoría de las distribuciones de Linux (incluso en Raspberry Pi), Windows y OSX/macOS. Los pasos específicos para la instalación varían según la plataforma. Consulte el descargas para consultar todos los paquetes disponibles. Para instalar en distribuciones de Linux distintas de las admitidas, consulte esta entrada.

Configuración y funcionamiento

Una vez instalado Sync Gateway, abra un intérprete de comandos.

A continuación, tengo dos configuraciones en la lista. Usted puede encontrar estos en el ejemplos de su instalación, o copie y pegue el texto de aquí en el suyo propio.

El primero lo puedes utilizar si tienes Servidor Couchbase que se ejecuta en su máquina. Esta es la configuración que encontrará en examples/basic-couchbase-bucket.json.

O para utilizar Sync Gateway de forma autónoma (normalmente sólo para pruebas), utilice esta configuración (que se encuentra en examples/basic-walrus-bucket.json):

Crear un documento

Desde la línea de comandos, ejecute Sync Gateway e indique la ruta al archivo de configuración.

En este punto el usuario especial INVITADO está habilitado. Podemos seguir adelante y crear un documento.

La respuesta muestra que la escritura se ha realizado correctamente. También puede ver esto en la salida del registro de Sync Gateway y mirando el bucket de respaldo en el archivo Consola web del servidor Couchbase.

Esta es la respuesta que vemos en la línea de comandos.

Actualizar un documento

A continuación, vamos a intentar hacer un cambio en el documento.

La salida muestra este fallo.

¿Por qué? Si recuerdas de otras partes de esta serie de blogs, Couchbase Mobile usa algo llamado Control de Concurrencia Multiversión para rastrear revisiones. Eso significa que cuando hacemos cambios en un documento, tenemos que indicar cuál es el documento "padre".

Intentémoslo de nuevo, esta vez especificando la revisión padre.

Eso funciona. La respuesta es

Seguimiento de la alimentación de cambios

El feed de cambios te ofrece una excelente forma de realizar un seguimiento de la base de datos. Puedes usar esto para escribir lógica del lado del servidor basada en eventos, o implementar un sistema automatizado de resolución de conflictos.

Mostraremos una versión que mantiene el feed abierto. Es posible que desee abrir otra ventana de línea de comandos para ver la salida.

Aquí hemos fijado el tipo de alimentación en continua. Varios elementos a lo largo de una ruta de red pueden cerrar una conexión que parece inactiva. Sync Gateway puede enviar un heartbeat para evitarlo. Establecemos un tiempo de espera de 26000 milisegundos.

El último parámetro, desdeindica a Sync Gateway dónde queremos empezar en la secuencia general de cambios. Normalmente debe tratarse como un valor opaco. Normalmente, una aplicación se iniciará sin especificar este parámetro (obteniendo todos los cambios) y, a continuación, realizará un seguimiento del valor enviado para utilizarlo en futuras solicitudes.

Este es el aspecto de un conjunto de cambios.

Añadir un usuario

Ahora, vamos a añadir un nuevo usuario, jdoe. Esta es una función de administración, por lo que la solicitud debe pasar por el puerto de administración. (Puerto 4985 si estás usando una de las configuraciones listadas).

También desactivaremos el acceso anónimo (GUEST).

Ya no podemos acceder a Sync Gateway desde el puerto público (4984) sin proporcionar un nombre de usuario y una contraseña.

Canales

Vamos a añadir un documento con un campo especial, canales.

Deberías ver esto devuelto.

Sync Gateway pasa cada documento a través de una función especial, llamada función de sincronización, cada vez que se actualiza un documento. No hemos especificado una función de sincronización, por lo que se utiliza automáticamente la predeterminada.

La función por defecto busca canales en las propiedades del documento. Si se encuentra, el documento se asigna a ese canal.

Un usuario debe tener acceso a un canal para recibir un documento asignado a ese canal. Más información sobre los canales aquí. Ya veremos el impacto.

Para ver qué pasa cuando no nos autenticamos, prueba este comando. La petición es rechazada

con la respuesta esperada.

¿Qué tal si lo intentamos de nuevo, proporcionando el nombre de usuario y la contraseña correctos?

Esto a veces pilla a la gente por sorpresa. Nos vuelven a rechazar, pero por un motivo diferente.

¿Qué ha pasado? Recuerda que cuando escribimos el documento, lo asignamos al canal abc. Aunque el usuario jdoe escribió el documento, no hemos dado acceso a la abc canal. Sin eso, jdoe no puede volver a leer el documento.

Cambiar los canales jdoe tiene acceso a

y ver que el usuario ya puede acceder al documento.

¡Éxito!

Conclusión

Espero que esto le ayude a comprender mejor Sync Gateway. Le animo a que eche un vistazo a la API REST más. Puede encontrar más información interesante en la utilidad de administración web integrada en Sync Gateway (http://localhost:4985/_admin/) y en la consola web del servidor Couchbase.

Para ver un ejemplo interesante de cómo usar Sync Gateway de forma autónoma, consulta nuestra charla de CouchBase Connect 2016: https://www.youtube.com/watch?v=6Ra4NeY7TNA

[buttongroup][button style="btn-link btn-lg" icon="fa fa-arrow-left" align="left" iconcolor="#dd3333″ type="link" target="false" title="Anterior: Instalación de Sync Gateway" link="https://www.couchbase.com/blog/comodarse-couchbase-móvil-instalar-sync-gateway/" linkrel=""][button style="btn-link btn-lg" icon="fa fa-arrow-right" align="left" iconcolor="#dd3333″ type="link" target="false" title="Siguiente: TBD" link="" linkrel=""][/buttongroup]

Posdata

Consulte más recursos en nuestra portal para desarrolladores y síganos en Twitter @CouchbaseDev.

Puede enviar preguntas a nuestro foros. Y participamos activamente en Stack Overflow.

Puede seguirme personalmente en @HodGreeley

Autor

Publicado por Hod Greeley, Defensor del Desarrollador, Couchbase

Hod Greeley es desarrollador de Couchbase y vive en Silicon Valley. Tiene más de dos décadas de experiencia como ingeniero de software y director de ingeniería. Ha trabajado en una variedad de campos de software, incluyendo física computacional y química, seguridad informática y de redes, finanzas y móviles. Antes de unirse a Couchbase en 2016, Hod dirigió las relaciones con desarrolladores para móviles en Samsung. Hod es doctor en física química por la Universidad de Columbia.

2 Comentarios

  1. [...] puede probar. También puede utilizar herramientas de línea de comandos y la interfaz de administración de Sync Gateway. Eche un vistazo aquí para obtener más información sobre [...]

  2. [Anterior: Couchbase Server a través de la línea de comandos Siguiente: Sync Gateway a través de la línea de comandos [...]

Dejar una respuesta