文章目录

  • (十八)SpringCloud Alibaba Nacos服务注册和配置中心
    • 1、Nacos简介
      • 1.1 为什么叫Nacos
      • 1.2 Nacos是什么
      • 1.3 Nacos能干嘛
      • 1.4 Nacos去哪下载
      • 1.5 各种配置中心的比较
    • 2、安装并运行Nacos
    • 3、Nacos作为服务注册中心演示
      • 3.1 官方文档:
      • 3.2 基于Nacos的服务提供者
        • 3.2.1 新建Module
        • 3.2.2 POM
        • 3.2.3 YML
        • 3.3.4 主启动类
        • 3.2.5 业务类
        • 3.2.6 测试
        • 3.2.7 新建9002
      • 3.3 基于Nacos的服务消费者
        • 3.3.1 新建Model
        • 3.3.2 POM
        • 3.3.3 YML
        • 3.3.4 主启动类
        • 3.3.5 业务类
        • 3.3.6 测试
      • 3.4 服务注册中心对比
        • 3.4.1 Nacos全景图所示:
        • 3.4.2 Nacos和CAP:
        • 3.4.3 切换
    • 4、Nacos作为服务配置中心演示
      • 4.1 Nacos作为配置中心-基础配置
        • 4.1.1 新建Model
        • 4.1.2 POM
        • 4.1.3 YML
        • 4.1.4 主启动类
        • 4.1.5 业务类
        • 4.1.6 在Nacos中添加配置信息
        • 4.1.7 测试
        • 4.1.8 自带动态刷新
      • 4.2 Nacos作为配置中心-分类配置
        • 4.2.1 问题:多环境多项目管理
        • 4.2.2 Nacos的图形化管理界面
        • 4.2.3 Namespace+Group+Data ID
        • 4.2.4 Case
          • 4.2.4.1 DataID方案:
          • 4.2.4.2 Group方案:
          • 4.2.4.3 Namespace方案:
    • 5、Nacos集群和持久化配置(重要)
      • 5.1 官网说明
      • 5.2 Nacos持久化配置解释
        • 5.2.1 Nacos默认自带的是嵌入式数据库derby
        • 5.2.2 derby到mysql切换配置步骤
      • 5.3 Linux版Nacos+MySQL生产环境配置

(十八)SpringCloud Alibaba Nacos服务注册和配置中心

1、Nacos简介

1.1 为什么叫Nacos

前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service

1.2 Nacos是什么

  • 一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心
  • Nacos:Dynamic Naming and Configuration Service
  • Nacos就是注册中心+配置中心的组合,等价于==》Nacos = Eureka+Config+Bus

1.3 Nacos能干嘛

  • 替代Eureka做服务注册中心

  • 替代Config做服务配置中心

1.4 Nacos去哪下载

  • https://github.com/alibaba/Nacos
  • 官网文档:
    • https://nacos.io/zh-cn/index.html
    • https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery

1.5 各种配置中心的比较

2、安装并运行Nacos

本地Java8+Maven环境已经OK

先从官网下载Nacos:https://github.com/alibaba/nacos/releases/tag/1.1.4

解压安装包,直接运行bin目录下的startup.cmd

命令运行成功后直接访问http://localhost:8848/nacos

默认账号密码都是nacos

结果页面:

3、Nacos作为服务注册中心演示

3.1 官方文档:

https://spring.io/projects/spring-cloud-alibaba

3.2 基于Nacos的服务提供者

3.2.1 新建Module

cloudalibaba-provider-payment9001

3.2.2 POM

父POM:

<!--spring cloud alibaba 2.1.0.RELEASE-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>

本模块POM:

<dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version>
</dependency></dependencies>

3.2.3 YML

server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: '*'

3.3.4 主启动类

package com.atguigu.springcloud.alibaba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001 {public static void main(String[] args) {SpringApplication.run(PaymentMain9001.class,args);}
}

3.2.5 业务类

PaymentController

package com.atguigu.springcloud.alibaba.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
public class PaymentController
{@Value("${server.port}")private String serverPort;@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id){return "nacos registry, serverPort: "+ serverPort+"\t id"+id;}
}

3.2.6 测试

访问:http://lcoalhost:9001/payment/nacos/1

Nacos控制台:

nacos服务注册中心+服务提供者9001都ok了

3.2.7 新建9002

为了下一章节演示nacos的负载均衡,参照9001新建9002

3.3 基于Nacos的服务消费者

3.3.1 新建Model

cloudalibaba-consumer-nacos-order83

3.3.2 POM

<dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.atguigu.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

为什么nacos支持负载均衡?

3.3.3 YML

server:port: 83spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848#消费者要去访问的微服务名称()注册成功进nacos的微服务提供者
service-url:nacos-user-service: http://nacos-payment-provider

3.3.4 主启动类

package com.atguigu.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class OrderMain83 {public static void main(String[] args) {SpringApplication.run(OrderMain83.class,args);}
}

3.3.5 业务类

ApplicationContextBean.java

package com.atguigu.springcloud.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class ApplicationContextConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}

OrderNacosController.java

package com.atguigu.springcloud.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;@RestController
public class OrderNacosController {@Resourceprivate RestTemplate restTemplate;@Value("${service-url.nacos-user-service}")private String serverURL;//83调用9001或者9002@GetMapping("/consumer/payment/nacos/{id}")public String payment(@PathVariable("id") Integer id){return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);}
}

3.3.6 测试

nacos控制台:

访问:http://localhost:83/consumer/payment/nacos/13

83访问9001/9002,轮询负载OK

3.4 服务注册中心对比

各种注册中心对比:

3.4.1 Nacos全景图所示:

3.4.2 Nacos和CAP:

3.4.3 切换

Nacos支持AP和CP模式的切换

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

4、Nacos作为服务配置中心演示

4.1 Nacos作为配置中心-基础配置

4.1.1 新建Model

cloudalibaba-config-nacos-client3377

4.1.2 POM

新的POM:

com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config

<dependencies><!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--web + actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--一般基础配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

4.1.3 YML

bootstrap.yml

server:port: 3377spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #服务注册中心地址config:server-addr: localhost:8848 #配置中心地址file-extension: yaml #指定yaml格式的配置

application.yml

spring:profiles:active: dev

为什么配置两个yml?

Nacos同springcloud-config—样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。
springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

4.1.4 主启动类

package com.atguigu.springcloud.alibaba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377
{public static void main(String[] args) {SpringApplication.run(NacosConfigClientMain3377.class, args);}
}

4.1.5 业务类

ConfigClientController.java

package com.atguigu.springcloud.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RefreshScope//通过SpringCloud原生注解@RefreshScope实现配置自动更新
public class ConfigClientController
{@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}
}

@RefreshScope//通过SpringCloud原生注解@RefreshScope实现配置自动更新

4.1.6 在Nacos中添加配置信息

Nacos中的匹配规则:

理论:

Nacos中的dataid的组成格式与SpringBoot配置文件中的匹配规则

最后公式:

spring.application.name−{spring.application.name}-spring.application.name−{spring.profiles.active.spring.cloud.nacos.config.file}-${extension}

实操:

  • 新增配置:

​ nacos-config-client-dev

  • Nacos界面配置对应:

  • 设置DataID:

    • 公式:spring.application.name−{spring.application.name}-spring.application.name−{spring.profile.active}.${spring.cloud.nacos.config.file-extension}
    • prefix默认为spring.application.name的值
    • spring.profile.active既为当前环境对应的profile,可以通过配置项spring.profile.active 来配置
    • file-exetension为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension配置(properties、yaml

小总结说明:

4.1.7 测试

启动前需要在nacos客户端-配置管理-配置管理栏目下有没有对应的yaml配置文件

运行cloud-config-nacos-client3377的主启动类

调用接口查看配置信息——http://localhost:3377/config/info

4.1.8 自带动态刷新

修改下Nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新

4.2 Nacos作为配置中心-分类配置

4.2.1 问题:多环境多项目管理

问题1:
实际开发中,通常—个系统会准备
dev开发环境
test测试环境
prod生产环境。
如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢?
问题2:
一个大型分布式微服务系统会有很多微服务子项目,
每个微服务项目又都会有相应的开发环境、测试环境、预发环境、正式环境…
那怎么对这些微服务配置进行管理呢?

4.2.2 Nacos的图形化管理界面

配置管理:

命名空间:

4.2.3 Namespace+Group+Data ID

三者关系?为什么这么设计?

  1. 是什么
    类似Java里面的package名和类名
    最外层的namespace是可以用于区分部署环境的,Group和DatalD逻辑上区分两个目标对象
  2. 三者情况

默认情况:
Namespace= public, Group= DEFAULT_ GROUP,默认Cluster是DEFAULT

  • Nacos默认的命名空间是public, Namespace主要用来实现隔离。
    比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
  • Group默认是DEFAULT_ GROUP, Group可以把不同的微服务划分到同一个分组里面去
  • Service就是微服务; -个Service可以包含多个Cluster (集群),Nacos默认Cluster是DEFAULT, Cluster是对指定微服务的一 个虚拟划分。
  • 比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一 个集群名称(HZ),给广州机房的Service微服务起一 个集群名称(GZ) ,还可以尽量让同一个机房的微服务互相调用,以提升性能。
  • 最后是Instance,就是微服务的实例。

4.2.4 Case

4.2.4.1 DataID方案:
  • 指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置

  • 默认空间+默认分组+新建dev和test两个DataID

    • 新建dev配置DataID

    • 新建test配置DataID

  • 通过spring.profile.active属性就能进行多环境下配置文件的读取

  • 测试:http://localhost:3377/config/info

    配置是什么就加载什么 test

4.2.4.2 Group方案:
  • 通过Group实现环境区分

  • 在nacos图形界面控制台上面新建配置文件DataID

  • bootstrap+application

  • 在config下增加一条group的配置即可。可配置为DEV_GROUP或TEST_GROUP
4.2.4.3 Namespace方案:

新建dev/test的Namespace

回到服务管理-服务列表查看

按照域名配置填写:

修改YML:

namespace: c62bb712-cf1b-4604-90a1-c31c5be4c762

bootstrap.yml

application.uml

spring:profiles:active: dev  #表示开发环境

5、Nacos集群和持久化配置(重要)

5.1 官网说明

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

官网架构图:

上图官网翻译,真实情况:

说明:

再以单机模式启动nacos, nacos所有写嵌入式数据库的数据都写到了mysql

按照上述,我们需要mysql数据库

5.2 Nacos持久化配置解释

5.2.1 Nacos默认自带的是嵌入式数据库derby

https://github.com/alibaba/nacos/blob/develop/config/pom.xml

5.2.2 derby到mysql切换配置步骤

  • nacos-server-1.1.4\nacos\conf目录下找到sql脚本

    • nacos-mysql.sql

    • 打开SQLYoga,执行脚本,

      • 
        CREATE DATABASE nacos_config;
        USE nacos_config;/*   数据库全名 = 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 ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
  • nacos-server-1.1.4\nacos\conf目录下找到application.properties

spring.datasource.platform=mysqldb.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow##################################################spring.datasource.platform=mysqldb.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=密码

启动nacos,可以看到是个全新的空记录界面,以前是记录进derby

5.3 Linux版Nacos+MySQL生产环境配置

SpringCloud学习之(十八)SpringCloud Alibaba Nacos服务注册和配置中心相关推荐

  1. SpringCloud Alibaba Nacos服务注册和配置中心-微服务(二十六)

    Nacos作为服务注册中心演示 官网文档 基于Nacos的服务提供者 新建Module cloudalibaba-provider-payment9001 POM 父POM <?xml vers ...

  2. 【SpringCloud】Spring cloud Alibaba Nacos 服务注册与配置中心

    文章目录 1.概述 1.1 为什么叫Nacos 1.2 是什么 1.3.地址 1.4 区别 2.运行 3. 服务提供者 4. 服务消费者 5. 扩展 5.1 Nacos支持AP和CP模式的切换 5.1 ...

  3. 【SpringCloud】Spring cloud Alibaba Nacos 服务注册与配置中心 命名空间 Data Id

    文章目录 1.概述 2.分类配置 2.1 问题1 2.2 问题2 2.3 Namespace +Group+ Data ID三者关系?为什么这么设计? 2.3.1是什么 2.3.2 三 者情况 2.4 ...

  4. SpringCloud微服务(四)——Nacos服务注册和配置中心

    SpringCloud Alibaba Nacos服务注册和配置中心 Spring Cloud Netflix Projects Entering Mainterance Mode SpringClo ...

  5. Nacos服务注册和配置中心

    简介 Nacos 前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service. Nacos = Eureka+Config +Bus,就是注册中心 + 配置中心的组 ...

  6. SpringCloud Alibaba实战--第二篇:NacosⅠ服务注册和配置中心

    系列文章目录 微服务新王SpringCloudAlibaba 文章目录 系列文章目录 前言 一.Nacos是什么?能干啥? 二.Nacos下载及安装 1. 下载 2. 安装并运行 3. 对比Eurek ...

  7. Nacos服务注册与配置中心

    Nacos简介 由于性能关系,Eureka 停止更新,Hystrix 和 Ribbon 进入维护模式,不再继续更新. 2018.10.31,Spring Cloud Alibaba 正式入驻了Spri ...

  8. Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流

    通过Spring Cloud Alibaba相关组件nacos+sentinel+dubbo实行服务注册.配置中心.熔断限流等功能 1.本机安装nacos和sentinel-dashboard服务端 ...

  9. Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Nacos简介 使用Nacos作为注册中心 安装并运行Nacos 创建应用注册到Nacos 负载均衡功能 使用Nacos作为配置中心 创建naco ...

最新文章

  1. 内存 : DDR2与DDR
  2. wamp如何更改网站根目录DocumentRoot
  3. 浅谈“知识蒸馏”技术在机器学习领域的应用
  4. DisplayPowerState
  5. python使用request发送post请求_python之使用request模块发送post和get请求
  6. android切换线程的方法,android 主线程切换方法
  7. 高阶函数-参数与返回值
  8. mysql二进制安装shell脚本,一分钟就搞好linux上的mysql
  9. 精彩案例:一碗牛肉面的思考
  10. 三年开发三年管理,三个月努力5A成绩通过PMP就在51CTO!
  11. UCenter 来自网络
  12. adb 安卓模拟器 进程端口_【转】安卓模拟器连接端口一览表
  13. 计算机应用基础0039答案,计算机应用基础-0039(贵州电大-课程号:5205004)参考资料.docx...
  14. Task 07--面向对象的编程
  15. baidu文库爪巴虫——xls
  16. 《MySQL必知必会》读书笔记
  17. python 笔记 一次失败的例子 《笨办法学Python》习题36 ——1.19
  18. 如何提取fq.gz中的文件_什么是GZ文件类型或扩展名? 如何创建,提取和打开Gz文件?...
  19. 狼人杀个人理解玩法之(女巫)
  20. STM32 固件库外设 GPIO 讲解(关于 GPIO 寄存器讲解)

热门文章

  1. C#调用百度api,根据经度和纬度获取地理位置信息
  2. 【WIN10】此用户无法登录,因为该账户当前已被禁用
  3. 数据结构——家谱管理系统
  4. 关于如何在WPS中生成附图索引
  5. USB转串口常用芯片
  6. 此时已莺飞草长,愿世间美好与你环环相扣
  7. 商业软件公司关注开源和Linux的5个理由
  8. 基于HLS协议的无插件HTML5流媒体播放
  9. 机器视觉技术原理解析及解决方案集锦
  10. HP刀片服务器找不到网卡,HP BL460C G7刀片服务器阵列芯片故障的解决办法