Cuando se es administrador de bases de datos o de sistemas, no siempre se tiene tiempo para pasar por los asistentes de configuración al implantar un nuevo software. Probablemente porque está gestionando grandes cantidades de sistemas en una gran organización.
¿Qué vas a hacer con tu clúster de bases de datos distribuidas?
Couchbase Server incluye un API RESTful que es perfecto para aprovisionar instancias, ya sea creando nuevos clusters o uniéndose a clusters existentes. Vamos a ver cómo utilizar algunos de esos puntos finales de la API.
Instalación de Couchbase Server para Mac, Linux o Windows
Independientemente de si deseas configurar Couchbase Server sobre HTTP o no, vas a necesitar instalar el software primero. Hay un binario disponible para Mac, Linux y Windows, todos se encuentran en la página sección de descargas del sitio web de Couchbase.
Si lo prefieres, también puedes encontrar varias imágenes de nube disponibles para servicios como Amazon, Azure y Docker.
Creación de un nuevo clúster con la línea de comandos
Una vez que Couchbase Server está instalado y funcionando, podemos aprovechar los puntos finales de la API RESTful para completar la configuración de la instancia.
Lo primero que queremos hacer es definir cuánta memoria asignar a nuestra instancia:
1 2 3 |
rizo -v -X POST http://localhost:8091/pools/default -d memoryQuota=512 -d indexMemoryQuota=512 |
El comando anterior asignará a la instancia 512 MB de memoria y 512 MB de memoria de índice. Por supuesto, ambos deben ajustarse en función de sus necesidades.
También tenemos que definir qué servicios estarán disponibles en nuestra instancia:
1 2 |
rizo -v http://localhost:8091/node/controller/setupServices -d servicios=kv%2cn1ql%2Índice |
En el ejemplo anterior tenemos una lista de servicios delimitada por comas en la que la coma está codificada como URL para ser %2C
. Los servicios en este ejemplo serán el servicio clave-valor (KV), el servicio N1QL y el servicio de índice. Dependiendo de tus necesidades puedes o no querer habilitar todos estos servicios.
La instancia de Couchbase es muy abierta e insegura en este momento porque aún no se ha creado una cuenta administrativa. Es una buena idea crear esa cuenta administrativa ahora:
1 2 3 4 |
rizo -v http://localhost:8091/settings/web -d puerto=8091 -d nombre de usuario=Administrador -d contraseña=contraseña |
En el ejemplo anterior estamos definiendo el nombre de usuario administrativo como Administrador y que la contraseña sea contraseña. Probablemente no sea una buena opción en un entorno de producción.
No tenemos ningún bucket en nuestra instancia de Couchbase, así que probablemente deberíamos crear uno. Desde la línea de comandos, ejecuta:
1 2 3 4 5 6 |
rizo -v -u Administrador:contraseña -X POST http://localhost:8091/pools/default/buckets -d nombre=ejemplo -d bucketType=couchbase -d ramQuotaMB=256 -d authType=sasl |
El comando de creación de cubos anterior está haciendo bastante. Estamos proporcionando la información administrativa a la instancia en nuestra petición. El cubo que estamos creando se llamará ejemplo y será un couchbase Tipo de cubo. Hay varios tipos de bucket entre los que se puede elegir, así que no piense que sólo tenemos una opción. La asignación de memoria de este bucket será de 256MB de los 512MB que le dimos a este servidor.
Por último, ya que estamos utilizando N1QL, podría tener sentido crear un índice primario en el cubo. Siga adelante y ejecute lo siguiente:
1 2 |
rizo -v http://localhost:8093/consulta/servicio -d 'statement=crear índice primario en ejemplo' |
En este punto, la nueva instancia debería ser completamente funcional. Debe tener en cuenta que la API RESTful ofrece mucho más en términos de configuración que lo que hemos explorado y es una buena idea comprobar lo que tiene que ofrecer.
Unirse a un clúster con la línea de comandos
¿Y si estamos creando nodos para añadirlos a un clúster ya existente? Podemos utilizar la API RESTful para ayudarnos.
Desde la línea de comandos, ejecute lo siguiente:
1 2 3 4 5 |
rizo -u Administrador:contraseña -d clusterMemberHostIp=10.0.1.99 -d clusterMemberPort=8091 -d usuario=Administrador -d contraseña=contraseña -d servicios=kv%2cn1ql%2índice http://localhost:8091/node/controller/doJoinCluster |
El comando anterior tomará nuestro nodo en localhost, o dondequiera que nuestro nuevo nodo se encuentra y se unen a un clúster basado en la clusterMemberHostIp
. Este nuevo nodo tendrá todos los mismos servicios, aunque no es un requisito que todos los nodos coincidan.
Cada vez que añada o elimine nodos de un clúster, querrá reequilibrarlo. Esto se puede lograr con lo siguiente:
1 2 3 |
rizo -v -X POST -u [admin]:[contraseña] http://localhost:8091/controller/rebalance |
El proceso de reequilibrio puede llevar tiempo en función de la cantidad de datos de que disponga.
Conclusión
Acabas de ver cómo configurar un clúster de Couchbase Server con la línea de comandos y los puntos finales de la API RESTful. Esto es útil si administras muchos servidores y quieres realizar todo esto a través de un script. Hay muchos otros escenarios donde esto sería útil también. Tal vez usted ha creado una tubería de despliegue continuo y necesita que la base de datos se incluya en ella.
Hay muchos más puntos finales de API disponibles y le recomiendo encarecidamente que consulte la página documentación con respecto a ellos.