Nacos cinco: cúmulo nacos (modo autónomo Linux y el modo de clúster)

Nacos es compatible con tres modelos de implementación

  • Modo Stand-alone - para la prueba y el juicio independiente.
  • Cluster-Mode - para el entorno de producción para asegurar una alta disponibilidad.
  • modelo multi-cluster - para los escenarios de centros múltiples de datos.

Nota: Este artículo ha sido CentOS7 sistema Linux acerca de cómo implementar el modo independiente (solo) y el modo de clúster (cluster); (máquina virtual con VMware) 

Asegúrese de que está instalado en el medio ambiente:

  1. 64 bit OS Linux / Unix / Mac, se recomiendan los sistemas Linux.
  2. 64 bits JDK 1.8+; descarga . Configuración .
  3. Maven 3.2.x +; descarga . Configuración .
  4. Las agrupaciones necesitan depender de MySQL, que no tiene que ser de una sola
  5. Tres o más de tres NACOS nodos con el fin de constituir un clúster.

1, modo autónomo

Descargar extracto y otros pasos se omitirán

1.1, Linux / Unix / Mac

sh startup.sh -m standalone

 

Nacos Server para Linux está listo para funcionar.

1.2, el soporte de MySQL

Antes de la versión 0.7, cuando se utilizan los nacos modo independiente base de datos para el almacenamiento de datos incrustados, y conveniente para observar la situación básica de almacenamiento de datos. La versión 0.7 añade soporte para las capacidades de la fuente de datos MySQL, pasos específicos:

  • 1. Instalar la base de datos, versión: 5.6.5+
  • 2. Inicializar la base de datos MySQL
  • 3. Modificar conf / Application.properties archivo, el apoyo complemento para la configuración del origen de datos MySQL (en la actualidad sólo es compatible con MySQL), fuente de datos mysql url complemento, nombre de usuario y contraseña.
# spring
 
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
 
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
 
db.num=1
db.url.0=jdbc:mysql://10.51.10.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

nota:

  1. Esto se refiere a los archivos Application.properties Application.properties en el directorio de descompresión nacos nacos / conf directorio
  2. configuración específica db aquí varían según su

Nacos reinicio en modo autónomo, nacos base de datos integrada de todos los datos de escritura se escriben en el mysql

1.3, el acceso a la interfaz de usuario para ver si la implementación exitosa

En la entrada del navegador: http://10.51.10.128:8848/nacos/index.html

 

2, modelo de clúster

2.1, configurar el archivo de configuración de clúster

Bajo nacos nacos directorio directorio / conf sin envasar, existen archivos de configuración cluster.conf, por línea IP configurada: puerto. (3 configurar tres o más nodos)

Primero entramos en el directorio conf, por defecto sólo un archivo cluster.conf.example, tenemos que tener una copia, cambiar el nombre a cluster.conf 

cd /usr/local/nacos/config
cp cluster.conf.example cluster.conf

Entonces vi editor abre cluster.config, pulse a / i / o insertados en el modo de clave, las siguientes entradas 

#ip:port
10.51.10.128:8848
10.51.10.129:8848
10.51.10.130:8848

 A continuación, pulse la tecla ESC para volver al modo comando, presione shift +: entrar en el modo de comandos, introduzca los octavos de final WQ (Guardar y salir).

2.2, la inicialización mysql

Sin interfaz visual de Linux que han dejado de funcionar, el funcionamiento del mysql, MySQL Navicat antes de que utilizo para conectar a la instalación del Linux bajo Windows antes de continuar

Nota: La necesidad de establecer redes y autorización conexión remota Linux MySQL, entonces tenemos que liberar el puerto (socios práctica tabla puede convertir directamente desde el servidor de seguridad durante la práctica)

Crear una nueva base de datos llamada nacos_config, y ejecutar el siguiente archivo de secuencia de comandos SQL en los pantalones.

archivo de origen .sql

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
CREATE TABLE `config_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) DEFAULT NULL,
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `c_desc` varchar(256) DEFAULT NULL,
  `c_use` varchar(64) DEFAULT NULL,
  `effect` varchar(64) DEFAULT NULL,
  `type` varchar(64) DEFAULT NULL,
  `c_schema` text,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
CREATE TABLE `config_info_aggr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  `content` longtext NOT NULL COMMENT '内容',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
 
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
CREATE TABLE `config_info_beta` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
CREATE TABLE `config_info_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
CREATE TABLE `config_tags_relation` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`nid`),
  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
CREATE TABLE `group_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(64) unsigned NOT NULL,
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `data_id` varchar(255) NOT NULL,
  `group_id` varchar(128) NOT NULL,
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL,
  `md5` varchar(32) DEFAULT NULL,
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  `src_user` text,
  `src_ip` varchar(20) DEFAULT NULL,
  `op_type` char(10) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`nid`),
  KEY `idx_gmt_create` (`gmt_create`),
  KEY `idx_gmt_modified` (`gmt_modified`),
  KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
 
 
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
CREATE TABLE `tenant_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
 
 
CREATE TABLE `tenant_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
 
CREATE TABLE users (
	username varchar(50) NOT NULL PRIMARY KEY,
	password varchar(500) NOT NULL,
	enabled boolean NOT NULL
);
 
CREATE TABLE roles (
	username varchar(50) NOT NULL,
	role varchar(50) NOT NULL
);
 
INSERT INTO users (username, password, enabled) VALUES ('admin', '$2a$10$HxtJtd59imujvbux.i55zOGewhnJiLVXX8D9AETDMV.XtBLDGOXtW', TRUE);
 
INSERT INTO roles (username, role) VALUES ('admin', 'ROLE_ADMIN');

Navicat adjunta mapa: 

 

2.3, application.properties de configuración

ruta del archivo de configuración aquí es el mismo 1.3

# spring
 
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
 
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
 
 
# metrics for prometheus
#management.endpoints.web.exposure.include=*
 
# metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
 
# metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
 
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
#server.tomcat.basedir=
 
db.num=1
db.url.0=jdbc:mysql://10.51.10.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
 
## spring security config
### turn off security
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
 
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**

Al servidor de este punto nacos en un Linux en nuestra configuración es completa, y la configuración de dos Linux restante como se describe anteriormente, están conectados a la misma mysql tres Linux, como contenido cluster.conf

2.4, inicie el servicio

Tres máquinas Linux introduciendo el siguiente comando para iniciar nacos servicio de servidor

sh startup.sh

Nota: No agregue el sufijo, y el uso de modo de clúster se activa nacos servidor, iniciando la secuencia de comandos podemos ver 

#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
 
fi

Si los problemas de insuficiente memoria, puede ser apropiado para los parámetros de asignación de memoria JVM -server después de la transferencia de los pequeños, por defecto es: 

-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m

 

2.5, comprobamos si es normal empezar

Hay dos formas generales:

2.5.1, mediante la visualización del archivo de registro

La salida puede ser vista /conf/nacos.log contenidos (registros detallados) o /conf/start.out (Boot Record) Baocuo mirada mal, ya sea exitoso inicio

start.out de salida:

2019-01-20 21:18:25,381 INFO Nacos is starting...
 
0
2019-01-20 21:18:25,796 INFO Nacos Log files: /usr/local/nacos/logs/
 
2019-01-20 21:18:25,796 INFO Nacos Conf files: /usr/local/nacos/conf/
 
2019-01-20 21:18:25,796 INFO Nacos Data files: /usr/local/nacos/data/
 
2019-01-20 21:18:25,797 INFO Nacos started successfully in cluster mode.

 nacos.log de salida:

2019-01-20 21:18:25,381 INFO Nacos is starting...
 
2019-01-20 21:18:25,796 INFO Started Nacos in 20.035 seconds (JVM running for 21.66)
 
2019-01-20 21:18:25,796 INFO Nacos Log files: /usr/local/nacos/logs/
 
2019-01-20 21:18:25,796 INFO Nacos Conf files: /usr/local/nacos/conf/
 
2019-01-20 21:18:25,796 INFO Nacos Data files: /usr/local/nacos/data/
 
2019-01-20 21:18:25,797 INFO Nacos started successfully in cluster mode.

2.5.2, Entrar usando la interfaz visual Nacos servidor

En las ventanas se accede mediante un navegador http://10.51.10.128:8848/nacos/index.html,http://10.51.10.129:8848/nacos/index.html,http://10.51.10.130:8848/ nacos / index.html

 

2.6, inicie el proveedor de servicios y el consumidor

Ver Proyecto: tres NACOS - proveedores y consumidores de servicios

Sólo hacer cambios locales en application.properties de los dos proyectos:

spring.cloud.nacos.config.server-addr=10.51.10.128:8848,10.51.10.129:8848,10.51.10.130:8848

2.7, véase la administración de servidores Web Nacos

IP es 10.51.10.129 y 10.51.10.130 imágenes no hacen impresiones (perezoso)

 

2.8 Consumidor Servicios al Consumidor

Entrada: http: // localhost: 1929 / hi

 

Hasta ahora cúmulo Nacos Server y ya está! 

Publicados 136 artículos originales · ganado elogios 6 · vistas 1498

Supongo que te gusta

Origin blog.csdn.net/weixin_42073629/article/details/104624500
Recomendado
Clasificación