primavera nube alibaba - nacos introducción

Una breve introducción a los nacos

        nacos es un componente muy importante en el ecosistema spring cloud alibaba, tiene dos funciones: 1) centro de registro y descubrimiento; 2) centro de configuración.

        Antes de continuar con la introducción de nacos, primero presente una teoría, la teoría de límite, en un sistema distribuido, la consistencia, la disponibilidad y la tolerancia de partición no se pueden combinar. Una breve introducción a C, A y P:

        1. C (consistencia): Consistencia, la instancia de la misma solicitud al mismo tiempo devuelve el mismo resultado, que pertenece a la consistencia fuerte, es decir, en el entorno del clúster, la información del servicio proporcionada externamente es completamente consistente, pero en términos de eficiencia Puede haber alguna pérdida;

        2. A (disponibilidad): disponibilidad. Las solicitudes de lectura y escritura de todas las instancias pueden obtener respuestas correctas dentro de un cierto período de tiempo. Es una consistencia débil y la información obtenida por diferentes instancias puede ser inconsistente dentro de un período de tiempo muy corto. Pero el servicio está disponible y los datos finales son consistentes;

        3. P (tolerancia de partición): tolerancia a fallas de partición, en el caso de anomalías en la red, aún puede proporcionar una respuesta normal, que debe garantizarse en el sistema de microservicio;

Debido a que P debe garantizarse en los servicios distribuidos, ahora es una combinación de CP y AP.

        nacos tiene la función de centro de registro. Nuestro centro de configuración común también incluye zk y eureka. Sus diferencias se muestran en la siguiente tabla:

centro de configuración teoría de la PAC consola
nacos CP/AP tener
cuidador del zoológico PC ninguno
eureka punto de acceso tener

Cuando se inicia nacos, el valor predeterminado es el modo AP. Nacos se puede cambiar al modo CP con el siguiente comando. En los microservicios que usamos con frecuencia, elegimos usar el modo AP, y todas las instancias en este momento son instancias temporales. La diferencia más notable entre las instancias temporales y las instancias persistentes es que cuando la comprobación de estado detecta un problema con el servicio, la instancia persistente se marca como en mal estado, mientras que la instancia temporal se eliminará directamente.

curl -X PUT 'IP:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'

Dos nacos de uso básico

1 servidor nacos

        A continuación, permítanme presentarles cómo usar nacos. Nacos se divide aproximadamente en dos partes: servidor nacos y cliente nacos. La primera es el servidor nacos. Esta parte no necesita hacer ningún cambio, simplemente inicie el servicio directamente. Hay dos formas, una es descargar directamente el servicio empaquetado y ejecutarlo directamente a través del comando; la otra es descargar el código fuente de nacos e iniciarlo (nacos es un proyecto de arranque de primavera ordinario).

1. Servicio de paquete de descarga directa

        El primer paso es ir al sitio web oficial de nacos para descargar el proyecto del servidor correspondiente al entorno.La dirección de descarga es: Releases alibaba/nacos GitHub , pero una cosa a tener en cuenta es que actualmente en el sitio web oficial de nacos ( Nacos Quick Start ) , la versión recomendada de nacos es 2.0 .3.

 Descargue diferentes archivos comprimidos según diferentes entornos, descomprímalos después de descargarlos e ingrese al directorio bin

 De acuerdo con los diferentes entornos de servidor, seleccione diferentes scripts para su ejecución:

1)linux:

sh startup.sh -m standalone

2)ventanas

startup.cmd -m standalone

Cabe señalar que el sufijo independiente se refiere a comenzar en una sola instancia.

2. Comience en modo fuente

        Dirección del código fuente de Git: dirección del código fuente de Nacos , descargue el proyecto git, luego importe la idea (u otras herramientas de desarrollo) y luego inícielo. Cabe señalar que aparecerán clases en el paquete com.alibaba.nacos.consistency.entity durante el proceso de compilación del proyecto Si no se puede encontrar, ejecute el comando de compilación mvn en la consola en este momento y espere a que se complete la compilación antes de iniciar el proyecto.

D:\nacos>mvn compile

La clase de inicio está bajo el módulo de la consola en el código fuente:

 Después de iniciar el proyecto, observe la consola y se imprimirá la dirección de acceso y la información de inicio del proyecto, de la siguiente manera:

Después de iniciar el método anterior, acceda a la dirección de acceso impresa por la consola y aparecerá la siguiente página:

El nombre de usuario y la contraseña predeterminados de nacos son: nacos/nacos para iniciar sesión.

cliente 2 nacos

        Después de que el servidor de nacos se inicia normalmente, el siguiente paso es el acceso del cliente, que se utiliza para introducir el centro de registro/descubrimiento y el centro de configuración de nacos.El proyecto utiliza un proyecto de arranque de primavera común.

1. Centro de registro/descubrimiento

En primer lugar, es necesario introducir las siguientes dependencias en el proyecto:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

Luego agregue anotaciones a la clase de inicio del proyecto:

@SpringBootApplication
// nacos使用需要使用的注解
@EnableDiscoveryClient
public class SelfNacos9001Application {

    public static void main(String[] args) {
        SpringApplication.run(SelfNacos9001Application.class, args);
    }

}

El siguiente paso es agregar la información de configuración correspondiente en el archivo de configuración y configurar la dirección relevante del servidor nacos:

spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        # 注册中心地址
        server-addr: 172.30.10.103:8848

Luego inicie el proyecto, abra la consola del servidor nacos y podrá encontrar la información de registro en la página de registro:

Puede iniciar varias instancias y encontrará que habrá cambios relacionados en la cantidad de instancias. nacos permite que el mismo servicio registre varias instancias, lo que significa que un servicio puede tener varios nodos, entonces, ¿cómo confirma el cliente de nacos a qué servicio llamar cuando se produce una llamada de servicio? La respuesta es cinta, y el cliente de nacos ha heredado automáticamente la cinta (equilibrio de carga).

2. Centro de configuración 

Primero necesitas introducir las siguientes dependencias

        <dependency>
            <groupId> com.alibaba.cloud </groupId>
            <artifactId> spring-cloud-starter-alibaba-nacos-config </artifactId>
        </dependency>

Luego agregue la siguiente configuración en el archivo de configuración

spring:
  profiles:
    # 当前环境,在真实项目中,一般分为多个项目,dev为开发环境
    active: dev
  application:
    # 项目名称
    name: nacos-provider
  cloud:
    nacos:
      config:
        # 注册中心地址
        server-addr: 172.30.10.103:8848
        # 配置文件后缀,即配置文件格式
        file-extension: yaml
        # 命名空间,在后续nacos配置中会出现该参数是如何获取的
        namespace: 4b57e563-2039-42f4-86b1-9c4c7cf58bfc

Escriba el código de validación:

@RestController
@RequestMapping("/test")
// 动态刷新配置
@RefreshScope
public class NacosConfigTestController {

    @Value("${nacos.config}")
    private String configInfo;

    public String test(){
        return configInfo;
    }
}

        Se ha desarrollado el cliente simple, y luego se deben realizar configuraciones relacionadas en el servidor nacos. El primero es el espacio de nombres mencionado en el código anterior, porque tendremos múltiples entornos en desarrollo real, y generalmente usamos el espacio de nombres nacos se usa para dividir el entorno (también se puede implementar agrupando, pero generalmente no se recomienda) A continuación, agregue primero el espacio de nombres, como se muestra en la siguiente figura:

         Después de agregar, puede consultar la ID del espacio de nombres recién agregado en la columna del espacio de nombres (si la ID está personalizada, estará sujeta a personalización; de lo contrario, se generará automáticamente y aquí se usa el método de generación automática), de la siguiente manera El contenido en el cuadro rojo de la figura es el contenido configurado para el nodo de espacio de nombres

       El siguiente paso es crear un archivo de configuración en el espacio de nombres dev. El nombre del archivo de configuración se denomina de acuerdo con la información de configuración anterior. La regla es {spring.application.name}-{spring.profiles.active}.{spring .config.file-extension}, si está de acuerdo con la configuración anterior, entonces el nombre del archivo de configuración es nacos-provider-dev.yaml

 

 Luego puede iniciar el proyecto y luego verificarlo.

Tres racimos de nacos

        ¿Dónde se guarda la información relevante de la configuración de nacos? Descubriremos que cuando reiniciamos el servicio de nacos, la información que configuramos aún existe, lo que prueba que nacos no guarda la información en la memoria. De forma predeterminada, nacos conserva estos datos en su base de datos integrada, su base de datos integrada es la base de datos derby.

        Entonces, cuando estamos implementando un clúster de nacos, si cada nodo de nacos todavía usa su propia base de datos integrada, enfrentaremos un problema: la sincronización de datos. De hecho, nacos admite bases de datos externas, cuando usamos bases de datos externas, esto puede resolver el problema de sincronización de datos entre diferentes bases de datos. Echemos un vistazo a cómo usar una base de datos externa:

        El primer paso es ingresar a la carpeta nacos descomprimida e ingresar a la carpeta conf, en ella hay dos archivos importantes, uno es application.properties, y el otro es nacos-mysql.sql

         El segundo paso es ejecutar el archivo de script nacos-mysql.sql en la base de datos mysql preparada, pero debe tenerse en cuenta que no hay un script para crear una base de datos en el archivo de script, que debe crearse manualmente, y luego ejecutar el archivo de script anterior en la base de datos.

        El tercer paso es modificar el archivo application.properties, buscar la ubicación correspondiente a la figura siguiente en el archivo de configuración y luego abrir el comentario

         Después de completar los tres pasos anteriores, inicie el proyecto nacos y la información de configuración relevante de nacos se almacenará en la base de datos mysql especificada. Cuando implementamos el clúster de nacos, podemos almacenar los datos de este clúster en un clúster de mysql, lo que resuelve el problema de la sincronización de datos. Luego, el modelo de clúster de nacos es como se muestra en la siguiente figura:

        

         Las solicitudes externas acceden al proxy slb o al clúster nginx, y luego configuran la carga del clúster nacos en slb/nginx. Cabe señalar que el clúster nacos no es una estructura maestro-esclavo, y luego el nodo nacos guarda los datos persistentes en el clúster mysql, y luego se comunica entre cada nacos Sincronización completa de datos entre nodos.

        La configuración del clúster de nacos es muy simple, o ingrese a la carpeta conf, luego copie un archivo cluster.conf.example, asígnele el nombre cluster.conf y luego modifíquelo, como se muestra a continuación:

Cabe señalar que el clúster de nacos se implementa en el sistema Linux para la verificación. Si el nodo de nacos se implementa en un servidor durante la verificación, debe modificar el número de puerto en el archivo de configuración application.properties. También debe prestar atención Cuando se inicie nacos, ocupará el puerto + 1000 y el puerto + 1001 para la comunicación grpc, así que preste atención al valor del puerto establecido.

Acho que você gosta

Origin blog.csdn.net/weixin_38612401/article/details/125292657
Recomendado
Clasificación