Fundamentos detallados de Nacos de microservicios y construcción de servidores Nacos

¡Acostúmbrate a escribir juntos! Este es el séptimo día de mi participación en el "Nuevo plan diario de Nuggets · Desafío de actualización de abril", haga clic para ver los detalles del evento .

Directorio de artículos de la serie Microservicios

-Fundamento profundo de Nacos de microservicios y construcción del servidor Nacos


prefacio

Esta serie lo profundiza en el uso básico y los principios subyacentes de cada marco del sistema Spring de microservicios. El artículo anterior presentó la alta disponibilidad y los principios básicos de SpringCloud Eureka. Esta sección lo llevará a aprender los conceptos básicos de Nacos y la construcción de Nacos Server.


¿Qué es Nacos?

Nacos puede principalmente descubrir, configurar y administrar microservicios en el ecosistema de microservicios, y realizar el descubrimiento dinámico de servicios, la configuración de servicios, los metadatos de servicios y la gestión del tráfico.

Características clave de Nacos

  • Detección de servicios y supervisión del estado de los servicios
    • Nacos es compatible con el descubrimiento de servicios basado en DNS y RPC
    • Nacos proporciona comprobaciones de estado en tiempo real para los servicios, evitando solicitudes a hosts o instancias de servicio en mal estado
  • Servicio de configuración dinámica
    • Nacos gestiona la configuración de aplicaciones y la configuración de servicios de todos los entornos de forma centralizada, externalizada y dinámica
    • Nacos proporciona funciones de administración de configuración que incluyen el seguimiento de la versión de configuración, el lanzamiento canary, la reversión de configuración con un clic y las actualizaciones de estado de actualización de configuración del cliente
  • Servicio de DNS dinámico
    • El servicio de DNS dinámico admite el enrutamiento ponderado
  • Servicios y su gestión de metadatos
    • Nacos admite todos los servicios y metadatos en el centro de datos, incluida la descripción del servicio de administración, el ciclo de vida, el análisis de dependencia estática del servicio, el estado de salud del servicio, la administración del tráfico del servicio, las políticas de enrutamiento y seguridad, el SLA del servicio y los datos estadísticos de métricas más importantes.

Ecología Nacos

Actualmente, Nacos admite una variedad de ecosistemas, como SpringCloud, Dubbo, Cloud Native, etc.

Mapa Ecológico Nacos.png

Construcción del servidor Nacos

Disponible a través de la dirección de descarga Este artículo utiliza la versión 1.4.2

Interfaz de descarga de Nacos.png

directorio después de la descarga

Directorio Nacos.png

Nacos目录2.png

Nacos admite tres modos de implementación

  • Modo independiente: para pruebas y ensayos independientes
  • Modo de clúster: para entornos de producción, lo que garantiza una alta disponibilidad
  • Modo multiclúster: para escenarios de varios centros de datos

Arranque en modo autónomo

  • Linux/Unix

bin/startup.sh -m standalone

  • ventanas

cmd startup.cmd -m standalone

Salida de la consola de consola image.jpgAcceder al terminal de gestión xx.xx.xx.xx:8848, la cuenta/contraseña es nacos/na…

El número de puerto 8848 es el número de puerto predeterminado, puede modificar la propiedad server.port en el archivo de configuración application.properties

Interfaz de gestión de Nacos

Nacos管理界面.png

El modo independiente admite mysql

De forma predeterminada, Nacos utiliza una base de datos integrada para almacenar datos.Después de la versión 0.7, es compatible con las capacidades de fuente de datos mysql.

  1. Instale la base de datos, requisitos de la versión: 5.6.5+
  2. Inicialice la base de datos mysql, archivo de inicialización de la base de datos: nacos-mysql.sql
  3. Modifique el archivo conf/application.properties, agregue soporte para la configuración de la fuente de datos mysql (actualmente solo se admite mysql), agregue la URL, el nombre de usuario y la contraseña de la fuente de datos mysql
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
 spring.datasource.platform=mysql

### Count of DB:
 db.num=1

### Connect URL of DB:
 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
 db.user.0=nacos
 db.password.0=nacos
复制代码

Luego, inicie nacos en modo independiente, todos los datos escritos en la base de datos integrada en nacos se escriben en la tabla mysql nacos de la siguiente manera

nacos数据库.png

k8s construye nacos independientes

---
apiVersion: v1
kind: Service
metadata:
  name: nacos
  namespace: #k8s资源空间
spec:
  externalIPs:
    - xx.xx.xx.xx
  selector:
    app: nacos
  ports:
    - name: svc-port
      port: 8848
      targetPort: 8848

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nacos
  namespace: #k8s资源空间
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nacos
  template:
    metadata:
      labels:
        app: nacos
    spec:
      volumes:
        - name: localtime
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: timezone
          hostPath:
            path: /etc/timezone
      imagePullSecrets:
        - name: harborsecret
      containers:
        - name: nacos
          image: nacos-server:1.4.2
          imagePullPolicy: Always
          resources:
            limits:
              cpu: "2"
              memory: 2G
            requests:
              cpu: 500m
              memory: 500Mi
          env:
            #运行的profile
            - name: MODE
              value: standalone ## 集群模式
            - name: SPRING_DATASOURCE_PLATFORM
              value: mysql ## 数据源
            - name: MYSQL_SERVICE_HOST
              value: '127.0.0.1' ## MySQL 地址
            - name: MYSQL_SERVICE_DB_NAME
              value: nacos  	## MySQL Nacos 库名
            - name: MYSQL_SERVICE_USER
              value: root		## MySQL Nacos 账号
            - name: MYSQL_SERVICE_PASSWORD
              value: 'root'		## MySQL Nacos 密码
            - name: NACOS_AUTH_ENABLE
              value: 'true'		## 开启认证
            - name: NACOS_AUTH_CACHE_ENABLE
              value: 'true'		## 认证缓存开启
            - name: NACOS_AUTH_IDENTITY_KEY  ## 配置自定义身份识别的key
              value: 'xxx_key'	## 认证缓存开启
            - name: NACOS_AUTH_IDENTITY_VALUE 
              value: 'xxx_value'  ## 配置自定义身份识别的value
          volumeMounts:
            - name: localtime
              mountPath: /etc/localtime
            - name: timezone
              mountPath: /etc/timezone
复制代码

Supongo que te gusta

Origin juejin.im/post/7085244385117339679
Recomendado
Clasificación