¡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
- Microservicios detallados: principio de ensamblaje automático SpringBoot
- Microservicios detallados: componente de llamada de SpringCloud Fingir
- Microservicios en profundidad: registro de servicios y descubrimiento de la base de SpringCloud Eureka
- Microservicios detallados: registro de servicios y descubrimiento de alta disponibilidad y principios básicos de Spring Cloud Eureka
-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.
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
directorio después de la descarga
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 Acceder 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
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.
- Instale la base de datos, requisitos de la versión: 5.6.5+
- Inicialice la base de datos mysql, archivo de inicialización de la base de datos: nacos-mysql.sql
- 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
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
复制代码