SpringCloud Hoxton版 + SpringCloud alibaba学习笔记(9)-- SpringCloud Alibaba Nacos服务注册和配置中心

布满荆棘的人生 2022-12-31 04:24 215阅读 0赞

上一篇:SpringCloud Hoxton版 + SpringCloud alibaba学习笔记(8)— SpringCloud Alibaba入门简介

一、Nacos简介

1、为什么叫Nacos

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

2、是什么

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

3、能干嘛

替代Eureka做服务注册中心
替代Config做服务配置中心

4、去哪下

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

5、各种注册中心比较

在这里插入图片描述

二、安装并运行Nacos

1、本地Java8+Maven环境已经OK

2、先从官网下载Nacos

https://github.com/alibaba/nacos/releases/tag/1.1.4

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

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

默认账号密码都是nacos

5、结果页面

在这里插入图片描述

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

1、官网文档

2、基于Nacos的服务提供者

①、新建Module

cloudalibaba-provider-payment9001

②、POM

父POM

  1. <!--spring cloud alibaba 2.1.0.RELEASE-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  5. <version>2.1.0.RELEASE</version>
  6. <type>pom</type>
  7. <scope>import</scope>
  8. </dependency>

本模块POM

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-web</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-actuator</artifactId>
  13. </dependency>
  14. <dependency>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-devtools</artifactId>
  17. <scope>runtime</scope>
  18. <optional>true</optional>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.projectlombok</groupId>
  22. <artifactId>lombok</artifactId>
  23. <optional>true</optional>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-test</artifactId>
  28. <scope>test</scope>
  29. </dependency><dependency>
  30. <groupId>com.alibaba</groupId>
  31. <artifactId>fastjson</artifactId>
  32. <version>1.2.62</version>
  33. </dependency>
  34. </dependencies>
③、YML
  1. server:
  2. port: 9001
  3. spring:
  4. application:
  5. name: nacos-payment-provider
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848 #配置Nacos地址
  10. management:
  11. endpoints:
  12. web:
  13. exposure:
  14. include: '*'
④、主启动
  1. package com.atguigu.springcloud.alibaba;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @EnableDiscoveryClient
  6. @SpringBootApplication
  7. public class PaymentMain9001 {
  8. public static void main(String[] args) {
  9. SpringApplication.run(PaymentMain9001.class,args);
  10. }
  11. }
⑤、业务类
  1. package com.atguigu.springcloud.alibaba.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.PathVariable;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. public class PaymentController
  8. {
  9. @Value("${server.port}")
  10. private String serverPort;
  11. @GetMapping(value = "/payment/nacos/{id}")
  12. public String getPayment(@PathVariable("id") Integer id)
  13. {
  14. return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
  15. }
  16. }
⑥、测试

http://lcoalhost:9001/payment/nacos/1
nacos控制台
在这里插入图片描述
nacos服务注册中心+服务提供者9001都ok了

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

新建cloudalibaba-provider-payment9002
9002其他步骤你懂的
或者取巧不想新建重复体力劳动,直接拷贝虚拟端口映射
在这里插入图片描述
在这里插入图片描述

3、基于Nacos的服务消费者

①、新建Module

cloudalibaba-consumer-nacos-order83

②、POM
  1. <dependencies>
  2. <!--SpringCloud ailibaba nacos -->
  3. <dependency>
  4. <groupId>com.alibaba.cloud</groupId>
  5. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.atguigu.springcloud</groupId>
  9. <artifactId>cloud-api-commons</artifactId>
  10. <version>${ project.version}</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-web</artifactId>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-actuator</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-devtools</artifactId>
  23. <scope>runtime</scope>
  24. <optional>true</optional>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.projectlombok</groupId>
  28. <artifactId>lombok</artifactId>
  29. <optional>true</optional>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-test</artifactId>
  34. <scope>test</scope>
  35. </dependency>
  36. </dependencies>

为什么nacos支持负载均衡
在这里插入图片描述

③、YML
  1. server:
  2. port: 83
  3. spring:
  4. application:
  5. name: nacos-order-consumer
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848
  10. service-url:
  11. nacos-user-service: http://nacos-payment-provider
④、主启动
  1. package com.atguigu.springcloud.alibaba;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @EnableDiscoveryClient
  6. @SpringBootApplication
  7. public class OrderNacosMain83
  8. {
  9. public static void main(String[] args)
  10. {
  11. SpringApplication.run(OrderNacosMain83.class,args);
  12. }
  13. }
⑤、业务类

ApplicationContextBean

  1. package com.atguigu.springcloud.alibaba.config;
  2. import org.springframework.cloud.client.loadbalancer.LoadBalanced;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.client.RestTemplate;
  6. @Configuration
  7. public class ApplicationContextConfig
  8. {
  9. @Bean
  10. @LoadBalanced
  11. public RestTemplate getRestTemplate()
  12. {
  13. return new RestTemplate();
  14. }
  15. }

OrderNacosController

  1. package com.atguigu.springcloud.alibaba.controller;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.PathVariable;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import org.springframework.web.client.RestTemplate;
  8. import javax.annotation.Resource;
  9. @RestController
  10. @Slf4j
  11. public class OrderNacosController
  12. {
  13. @Resource
  14. private RestTemplate restTemplate;
  15. @Value("${service-url.nacos-user-service}")
  16. private String serverURL;
  17. @GetMapping(value = "/consumer/payment/nacos/{id}")
  18. public String paymentInfo(@PathVariable("id") Long id)
  19. {
  20. return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
  21. }
  22. }
⑥、测试

nacos控制台
在这里插入图片描述
http://localhost:83/consumer/payment/nacos/13
83访问9001/9002,轮询负载OK

4、服务注册中心对比

①、Nacos全景图所示

在这里插入图片描述

②、Nacos和CAP

在这里插入图片描述
在这里插入图片描述

③、切换

Nacos支持AP和CP模式的切换
在这里插入图片描述
AP模式为了服务的可用性而减弱了一致性
curl -X PUT ‘$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP’

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

1、Nacos作为配置中心-基础配置

①、cloudalibaba-config-nacos-client3377
②、POM
  1. <dependencies>
  2. <!--nacos-config-->
  3. <dependency>
  4. <groupId>com.alibaba.cloud</groupId>
  5. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  6. </dependency>
  7. <!--nacos-discovery-->
  8. <dependency>
  9. <groupId>com.alibaba.cloud</groupId>
  10. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  11. </dependency>
  12. <!--web + actuator-->
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-web</artifactId>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-actuator</artifactId>
  20. </dependency>
  21. <!--一般基础配置-->
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-devtools</artifactId>
  25. <scope>runtime</scope>
  26. <optional>true</optional>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.projectlombok</groupId>
  30. <artifactId>lombok</artifactId>
  31. <optional>true</optional>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-test</artifactId>
  36. <scope>test</scope>
  37. </dependency>
  38. </dependencies>
③、YML

bootstrap

  1. server:
  2. port: 3377
  3. spring:
  4. application:
  5. name: nacos-config-client
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848 #服务注册中心地址
  10. config:
  11. server-addr: localhost:8848 #配置中心地址
  12. file-extension: yaml #指定yaml格式的配置

application

  1. spring:
  2. profiles:
  3. active: dev

why配置两个
在这里插入图片描述

④、主启动
  1. package com.atguigu.springcloud.alibaba;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @EnableDiscoveryClient
  6. @SpringBootApplication
  7. public class NacosConfigClientMain3377
  8. {
  9. public static void main(String[] args) {
  10. SpringApplication.run(NacosConfigClientMain3377.class, args);
  11. }
  12. }
⑤、业务类
  1. package com.atguigu.springcloud.alibaba.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.cloud.context.config.annotation.RefreshScope;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @RefreshScope
  8. public class ConfigClientController
  9. {
  10. @Value("${config.info}")
  11. private String configInfo;
  12. @GetMapping("/config/info")
  13. public String getConfigInfo() {
  14. return configInfo;
  15. }
  16. }

ConfigClientController

  1. package com.atguigu.springcloud.alibaba.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.cloud.context.config.annotation.RefreshScope;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @RefreshScope
  8. public class ConfigClientController
  9. {
  10. @Value("${config.info}")
  11. private String configInfo;
  12. @GetMapping("/config/info")
  13. public String getConfigInfo() {
  14. return configInfo;
  15. }
  16. }

@RefreshScope
在这里插入图片描述

⑥、在Nacos中添加配置信息

Nacos中的匹配规则

1)、理论

Nacos中的dataid的组成格式与SpringBoot配置文件中的匹配规则
https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
在这里插入图片描述
在这里插入图片描述

2)、实操

配置新增 – nacos-config-client-dev
在这里插入图片描述
Nacos界面配置对应
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑦、测试

启动前需要在nacos客户端-配置管理-配置管理栏目下有没有对应的yaml配置文件
运行cloud-config-nacos-client3377的主启动类
调用接口查看配置信息:http://localhost:3377/config/info

⑧、自带动态刷新

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

2、Nacos作为配置中心-分类配置

①、问题

多环境多项目管理
在这里插入图片描述

②、Nacos的图形化管理界面

配置管理:
在这里插入图片描述
命名空间
在这里插入图片描述

③、Namespace+Group+Data ID三者关系?为什么这么设计?

在这里插入图片描述
在这里插入图片描述

④、Case
DataID方案
1、指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置
2、默认空间+默认分组+新建dev和test两个DataID

新建dev配置DataID
在这里插入图片描述
新建test配置DataID
在这里插入图片描述

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

在这里插入图片描述

4、测试

http://localhost:3377/config/info,配置是什么就加载什么

Group方案
1、通过Group实现环境区分

新建Group
在这里插入图片描述

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

在这里插入图片描述

3、bootstrap+application

在这里插入图片描述
在config下增加一条group的配置即可。可配置为DEV_GROUP或TEST_GROUP

Namespace方案
1、新建dev/test的Namespace

在这里插入图片描述

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

在这里插入图片描述

3、按照域名配置填写

在这里插入图片描述

4、YML

bootstrap

  1. namespace:

application

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

1、官网说明

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
在这里插入图片描述
上图中的VIP指的是虚拟IP
在这里插入图片描述
说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
官网说明
https://nacos.io/zh-cn/docs/deployment.html
重点说明
在这里插入图片描述
在这里插入图片描述

2、Nacos持久化配置解释

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

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

②、derby到mysql切换配置步骤
1)、nacos-server-1.1.4\nacos\conf目录下找到sql脚本

找到nacos-mysql.sql,执行脚本

  1. CREATE DATABASE nacos_config;
  2. USE nacos_config;
  3. /* 数据库全名 = nacos_config */
  4. /* 表名称 = config_info */
  5. /******************************************/
  6. CREATE TABLE `config_info` (
  7. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  8. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  9. `group_id` varchar(255) DEFAULT NULL,
  10. `content` longtext NOT NULL COMMENT 'content',
  11. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  12. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  13. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  14. `src_user` text COMMENT 'source user',
  15. `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  16. `app_name` varchar(128) DEFAULT NULL,
  17. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  18. `c_desc` varchar(256) DEFAULT NULL,
  19. `c_use` varchar(64) DEFAULT NULL,
  20. `effect` varchar(64) DEFAULT NULL,
  21. `type` varchar(64) DEFAULT NULL,
  22. `c_schema` text,
  23. PRIMARY KEY (`id`),
  24. UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
  26. /******************************************/
  27. /* 数据库全名 = nacos_config */
  28. /* 表名称 = config_info_aggr */
  29. /******************************************/
  30. CREATE TABLE `config_info_aggr` (
  31. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  32. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  33. `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  34. `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  35. `content` longtext NOT NULL COMMENT '内容',
  36. `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  37. `app_name` varchar(128) DEFAULT NULL,
  38. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  39. PRIMARY KEY (`id`),
  40. UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
  42. /******************************************/
  43. /* 数据库全名 = nacos_config */
  44. /* 表名称 = config_info_beta */
  45. /******************************************/
  46. CREATE TABLE `config_info_beta` (
  47. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  48. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  49. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  50. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  51. `content` longtext NOT NULL COMMENT 'content',
  52. `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  53. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  54. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  55. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  56. `src_user` text COMMENT 'source user',
  57. `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  58. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  59. PRIMARY KEY (`id`),
  60. UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  61. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
  62. /******************************************/
  63. /* 数据库全名 = nacos_config */
  64. /* 表名称 = config_info_tag */
  65. /******************************************/
  66. CREATE TABLE `config_info_tag` (
  67. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  68. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  69. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  70. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  71. `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  72. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  73. `content` longtext NOT NULL COMMENT 'content',
  74. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  75. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  76. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  77. `src_user` text COMMENT 'source user',
  78. `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  79. PRIMARY KEY (`id`),
  80. UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
  81. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
  82. /******************************************/
  83. /* 数据库全名 = nacos_config */
  84. /* 表名称 = config_tags_relation */
  85. /******************************************/
  86. CREATE TABLE `config_tags_relation` (
  87. `id` bigint(20) NOT NULL COMMENT 'id',
  88. `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  89. `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  90. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  91. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  92. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  93. `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  94. PRIMARY KEY (`nid`),
  95. UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  96. KEY `idx_tenant_id` (`tenant_id`)
  97. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
  98. /******************************************/
  99. /* 数据库全名 = nacos_config */
  100. /* 表名称 = group_capacity */
  101. /******************************************/
  102. CREATE TABLE `group_capacity` (
  103. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  104. `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  105. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  106. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  107. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  108. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  109. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  110. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  111. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  112. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  113. PRIMARY KEY (`id`),
  114. UNIQUE KEY `uk_group_id` (`group_id`)
  115. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
  116. /******************************************/
  117. /* 数据库全名 = nacos_config */
  118. /* 表名称 = his_config_info */
  119. /******************************************/
  120. CREATE TABLE `his_config_info` (
  121. `id` bigint(64) unsigned NOT NULL,
  122. `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  123. `data_id` varchar(255) NOT NULL,
  124. `group_id` varchar(128) NOT NULL,
  125. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  126. `content` longtext NOT NULL,
  127. `md5` varchar(32) DEFAULT NULL,
  128. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  129. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  130. `src_user` text,
  131. `src_ip` varchar(20) DEFAULT NULL,
  132. `op_type` char(10) DEFAULT NULL,
  133. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  134. PRIMARY KEY (`nid`),
  135. KEY `idx_gmt_create` (`gmt_create`),
  136. KEY `idx_gmt_modified` (`gmt_modified`),
  137. KEY `idx_did` (`data_id`)
  138. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
  139. /******************************************/
  140. /* 数据库全名 = nacos_config */
  141. /* 表名称 = tenant_capacity */
  142. /******************************************/
  143. CREATE TABLE `tenant_capacity` (
  144. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  145. `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  146. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  147. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  148. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  149. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  150. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  151. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  152. `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  153. `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  154. PRIMARY KEY (`id`),
  155. UNIQUE KEY `uk_tenant_id` (`tenant_id`)
  156. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
  157. CREATE TABLE `tenant_info` (
  158. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  159. `kp` varchar(128) NOT NULL COMMENT 'kp',
  160. `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  161. `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  162. `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  163. `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  164. `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  165. `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  166. PRIMARY KEY (`id`),
  167. UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  168. KEY `idx_tenant_id` (`tenant_id`)
  169. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
  170. CREATE TABLE users (
  171. username varchar(50) NOT NULL PRIMARY KEY,
  172. password varchar(500) NOT NULL,
  173. enabled boolean NOT NULL
  174. );
  175. CREATE TABLE roles (
  176. username varchar(50) NOT NULL,
  177. role varchar(50) NOT NULL
  178. );
  179. INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
  180. INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
2)、nacos-server-1.1.4\nacos\conf目录下找到application.properties
  1. spring.datasource.platform=mysql
  2. db.num=1
  3. db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
  4. db.user=nacos_devtest
  5. db.password=youdontknow
  6. ##################################################
  7. spring.datasource.platform=mysql
  8. db.num=1
  9. db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
  10. db.user=root
  11. db.password=123456
③、启动nacos,可以看到是个全新的空记录界面,以前是记录进derby

下一篇:SpringCloud Hoxton版 + SpringCloud alibaba学习笔记(10)— Linux版Nacos+MySQL生产环境配置

发表评论

表情:
评论列表 (有 0 条评论,215人围观)

还没有评论,来说两句吧...

相关阅读