Es una experiencia común encontrarse con errores de conexión de red cuando está desarrollando una aplicación - particularmente si se está conectando desde el SDK de su ordenador local a un cluster remoto.
¿Su SDK no está conectado? Es probable que te encuentres con situaciones en las que tu aplicación pueda conectarse al servidor pero te aparezcan errores relacionados con la conexión de red o las direcciones IP entre los nodos o tu app y el SDK de Couchbase.
En este artículo se explica cómo solucionar y corregir estos errores. El ejemplo que veremos a continuación crea un clúster en Azure para demostrar las condiciones iniciales, pero también debería ser aplicable a otras instalaciones.
Repasaremos cada paso para reproducir el error. En primer lugar, instalaremos Couchbase en Azure, luego ejecute SDK Doctor para ver cómo se manifiesta el error, luego actualice las direcciones alternativas y, por último, vuelva a ejecutar SDK Doctor para ver la respuesta satisfactoria.
Bueno, vamos a sumergirnos.
Instale su clúster Couchbase en Azure
Estos son los pasos para instalar un clúster de Couchbase en Azure.
- Entrar en Microsoft Azure Marketplace
- Buscar Couchbase
- Elija Couchbase Server y Sync Gateway
- Haga clic en Obtener ahora
- Elija BYOL
- Haga clic en Continuar
- Haga clic en Crear
- Rellenar formulario
- Admin:
asdf88495< Actualizar esto según proceda - Contraseña:
Contraseña1 @#$< Actualizar esto según proceda - Cumplimentar los formularios de configuración según proceda
- Haga clic en Crear
El proceso se ejecuta y se ve así una vez que hayas completado todos los pasos:

Actualizar las reglas del cortafuegos
Es probable que necesite actualizar las reglas del cortafuegos para permitir que su equipo local se conecte al clúster Azure remoto. Estos son los pasos:
1. Ir al grupo de recursos
2. Haga clic en Conjunto de escalas de máquinas virtuales

3. Haga clic en Red

4. Haga clic en Añadir regla de puerto de entrada

5. Actualiza la configuración para utilizar la información de tu red local. Advertencia: Esto es muy abierto para los propósitos de esta demostración, usted debe seguir sus directrices de seguridad al configurar el firewall.

Confirmar que Couchbase está en funcionamiento
El siguiente paso importante es confirmar que Couchbase está funcionando. He aquí cómo hacerlo:
1. Ve a instancias para obtener una dirección IP y conéctate al panel de control de Couchbase.

2. Obtenga la dirección IP de uno de sus servidores.

3. En este ejemplo, el nombre de usuario es https://40.80.151.197:8091/ui/index.html.
4. Inicia sesión con la información utilizada para crear la cuenta de administrador de la sección "Instala tu clúster Couchbase en Azure" anterior. Aquí es donde creaste el clúster en Azure y completaste el formulario.
5. En Couchbase, añada los datos de muestra que utilizará para esta demostración. Siga las instrucciones instrucciones en la documentación de Couchbase para añadir datos de buckets de muestra.
Presentación del SDK Doctor
El doctor del SDK de Couchbase es una herramienta para diagnosticar problemas de conectividad del lado del servidor de la aplicación con tu cluster de Couchbase. Realiza las mismas conexiones al Servidor Couchbase que los SDKs de Couchbase hacen durante el bootstrapping, y luego informa sobre el estado de las conexiones realizadas - dando información de diagnóstico que ayuda a resolver problemas de red desconcertantes.
Aquí está el conjunto completo de instrucciones para utilizar el SDK Doctor con Couchbase Server.
1. Ejecutar el SDK Doctor para detectar errores
Siguiendo las instrucciones anteriores - donde recogiste la dirección IP de tu cluster Couchbase - obtén también las direcciones IP de cada uno de los otros nodos de tu cluster. Utilizarás las direcciones IP en la cadena de conexión para el SDK Doctor.
El siguiente comando utiliza las direcciones IP de los nodos de su clúster además del nombre del bucket de datos de muestra. Deberá actualizar esta información en función de las IP de su propio clúster y del bucket de muestra específico que haya instalado.
Ahora, ejecute el SDK Doctor.
Probablemente obtendrá un montón de mensajes de error - como puede ver a continuación - especialmente si está ejecutando SDK Doctor desde un ordenador local y no en la misma red que los nodos/cluster/VMs. Verá el mensaje ERROR y Error de conexión mensajes. Observe que las direcciones IP son las 10 internas, no las 40 ni las 13.
Es posible que tenga que hacer doble clic en el código de ejemplo para ver el resultado completo (dependiendo de su dispositivo).
|
1 |
Uso de la dirección alternativa de Couchbase
Couchbase Server permite asignar una dirección alternativa a cualquier nodo individual del cluster, y un número de puerto alternativo a cualquier servicio que se ejecute en ese nodo.
La asignación de direcciones y números de puerto alternativos -que puede realizarse mediante la CLI y la API REST- puede facilitar la comunicación con aplicaciones externas que no tienen permiso para contactar directamente con los nodos de un clúster. Sin embargo, pueden tener acceso a un enrutador u otra entidad en red que proporcione direcciones visibles externamente en nombre de los nodos.
Sumérgete en la documentación de Couchbase sobre el uso de direcciones alternativas para obtener más información..
Añadir la dirección alternativa de Couchbase
Existe una llamada REST para actualizar la dirección alternativa de tu clúster Couchbase. (Para más información, consulte la documentación de Couchbase sobre la gestión de direcciones alternativas con la API REST.)
A continuación, deberá actualizar la dirección alternativa de cada dirección IP del clúster. Esto asigna la interna a la dirección IP que usted especifique.
|
1 |
curl -v -X PUT -u asdf88495:Password1!@#$ https://40.80.151.197:8091/node/controller/setupAlternateAddresses/external -d hostname=40.80.151.197 |
Deberías obtener una respuesta 200, como puedes ver a continuación.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
* Trying 13.82.230.238... * TCP_NODELAY set * Connected to 13.82.230.238 (13.82.230.238) port 8091 (#0) * Server auth using Basic with user 'asdf88495' > PUT /node/controller/setupAlternateAddresses/external HTTP/1.1 > Host: 13.82.230.238:8091 > Authorization: Basic YXNkZjg4NDk1OlBhc3N3b3JkMSFAIyQ= > User-Agent: curl/7.55.1 > Accept: */* > Content-Length: 22 > Content-Type: application/x-www-form-urlencoded > * upload completely sent off: 22 out of 22 bytes < HTTP/1.1 200 OK < X-XSS-Protection: 1; mode=block < X-Permitted-Cross-Domain-Policies: none < X-Frame-Options: DENY < X-Content-Type-Options: nosniff < Server: Couchbase Server < Pragma: no-cache < Expires: Thu, 01 Jan 1970 00:00:00 GMT < Date: Mon, 28 Jun 2021 18:59:31 GMT < Content-Length: 0 < Cache-Control: no-cache,no-store,must-revalidate |
Repita el comando para los otros hosts también, así:
|
1 |
curl -v -X PUT -u asdf88495:Password1!@#$ https://40.80.146.52:8091/node/controller/setupAlternateAddresses/external -d hostname=40.80.146.52 |
|
1 |
curl -v -X PUT -u asdf88495:Password1!@#$ https://13.82.230.238:8091/node/controller/setupAlternateAddresses/external -d hostname=13.82.230.238 |
2. Ejecutar el SDK Doctor para confirmar el éxito
Ahora, ejecute el SDK Doctor de nuevo para confirmar el éxito. Debería obtener algo como lo siguiente:
Es posible que tenga que hacer doble clic en el código de ejemplo para ver el resultado completo (dependiendo de su dispositivo).
|
1 |
¡Éxito!
Conclusión
Conectarse a clusters de Couchbase en la nube ofrece muchas ventajas. Pero a veces -debido a diversos requisitos de red y seguridad- la naturaleza remota y distribuida de los sistemas puede causar complicaciones entre el SDK de tu app y el clúster de Couchbase.
Mediante el uso de las direcciones Doctor y Alternate del SDK de Couchbase, puede solucionar fácilmente cualquier complicación que surja y solucionar los problemas de conexión de inmediato.