nacos默认用户名密码_Spring Cloud 微服务系列七: Nacos代替Consul

Spring Cloud 微服务系列七:Nacos代替Consul

提示:本文默认您已使用 注册中心 或 已知晓微服务注册中心组件的使用

1. Nacos 介绍

官网: 

https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

9fc10766d152962fece6377bb7cae5b3.png

64f04681e4fecf8c6eb247d42f8b95b8.png

2. Nacos 服务端集群部署 + 密码配置化

1. 下载启动包

下载网址:

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

nacos-server-1.3.2.tar.gz71.3 MB

nacos-server-1.3.2.zip71.3 MB

Source code(zip)

Source code(tar.gz)

目前稳定版是1.1.4,但是可能下载特别慢,这里提供网盘下载链接(nacos-server-1.1.4.tar.gz):

链接:

https://pan.baidu.com/s/1yQqAmLG8wVVWpBjE0yXMHw

提取码:z9b3

2. 解压指定环境的压缩包

nacos-server-版本.zip

nacos-server-版本.tar.gz

3. 启动

startup.cmd -m standalone (standalone代表着单机模式运行,非集群模式):

4. 访问

测试地址 http://127.0.0.1:8848/nacos 成功进入表示环境搭建成功

输入默认用户名密码:nacos/nacos

5. 集群部署

5.1 nacos\conf\ 下有一个文件 nacos-mysql.sql
CREATE DATABASE nacos;
USE nacos;/******************************************//* 数据库全名 = 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
);/*****************************************************************//* 此处是使用spring security 的 BCryptPasswordEncoder 加密方式 *//*****************************************************************/INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

查询结果如下:

username password enabled


nacos $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu 1

5.2 nacos\conf\ 下有一个文件 nacos/conf/application.properties

添加如下配置:(配置成功后重启即可,此时修改密码也可永久生效)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?useSSL=false&serverTimezone=UTC&serverTimezone=Asia/Shanghai
db.user=root
db.password=123456

6. nacos集群的意义:

微服务最重要的就是注册中心,起着生产与消费之间联系的作用,那么nacos宕机将造成程序错误!所以要将nacos集群搭建,以防宕机

1. 复制多份nacos文件,最好以端口号命名方便查看
2. 修改配置 nacos/conf/cluster.conf 这个文件本来没有的,通过复制 cluster.conf.example  文件的副本改名得来192.168.203.1:8848192.168.203.1:8849
# 因为是模拟多主机集群,这里用的是ip+端口的形式。
# 两个记录为集群的主机ip和nacos端口
# 不要写localhost
3. 修改配置 application.properties ( 两个nacos都要有该文件,内容相同 )
server.port=8848 / 8849
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?>useSSL=false&serverTimezone=UTC&serverTimezone=Asia/Shanghai
db.user=root
db.password=123456
4. 修改启动模式为:cluster ( nacos\bin\starup.cmd *27行* , 如是集群模式不用修改)
set MODE="cluster"

7. 启动

分别配置好二个项目配置文件后,启动各自startup文件,如下结果表示成功

         ,--.
,--.'|
,--,: : | Nacos 1.1.4
,`--.'`| ' : ,---. Running in cluster mode, All function modules| : : | | ' ,'\ .--.--. Port: 8849: | \ | : ,--.--. ,---. / / | / / ' Pid: 1676| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.203.1:8849/nacos/index.html
' ' ;. ;.--. .-. | / / '' | |: :| : ;_| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
' : | ; .' ," .--.; |' ; :__| : | `----. \| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
' : | ; : .' \ : : `----' '--'. /
; |.' | , .-./\ \ / `--'---'
'---' `--`---' `----'
2020-09-13 15:22:15,188 INFO The server IP list of Nacos is [192.168.203.1:8848, 192.168.203.1:8849]
2020-09-13 15:22:16,198 INFO Nacos is starting...
2020-09-13 15:22:17,200 INFO Nacos is starting...
2020-09-13 15:22:18,201 INFO Nacos is starting...
2020-09-13 15:22:19,203 INFO Nacos is starting...
2020-09-13 15:22:20,205 INFO Nacos is starting...
2020-09-13 15:22:21,206 INFO Nacos is starting...
2020-09-13 15:22:21,669 INFO Nacos Log files: D:\nacos\nacos-8849\nacos/logs/
2020-09-13 15:22:21,669 INFO Nacos Conf files: D:\nacos\nacos-8849\nacos/conf/
2020-09-13 15:22:21,670 INFO Nacos Data files: D:\nacos\nacos-8849\nacos/data/
2020-09-13 15:22:21,670 INFO Nacos started successfully in cluster mode.

8. 验证页面效果

页面左侧菜单 集群管理-> 节点列表 如下效果表示集群成功部署,如有问题可重复操作第6步骤

  • 集群管理

    • 节点列表

节点列表|public

节点Ip

查询

节点Ip节点状态集群任期Leader止时(ms)心跳止时(ms)
192.168.203.1:8848LEADER2169115000
192.168.203.1:8849FOLLOWER2155445000

9. 验证是否真的配置成功,且密码可配置化

  1. 直接修改 mysql 下nacos 库下 users下nacos用户的密码为: (123)

    $2a$10$.62erVHP8ojd5jEc7PHBKuO48jbojtxJCUwefxDTzuIcacJwtnUm.

  2. 验证集群

    192.168.203.1:8848/nacos

    192.168.203.1:8849/nacos

    使用nacos/123 是否可以成功登录

3. Nacos与Spring Cloud一起使用

3.1. 在Spring Cloud项目的pom.xml文件中添加依赖项spring-cloud-starter-alibaba-nacos-discovery。

https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery 可查看版本

 <dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
<version>2.1.0.RELEASEversion>dependency>

3.2. 将Nacos服务器地址配置添加到文件/src/main/resources/application.properties。

spring:
application:
name: test-server
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848

3. 3 使用@EnableDiscoveryClient注解打开服务注册和发现。

 @SpringBootApplication// 此处导入@EnableDiscoveryClient注解即可@EnableDiscoveryClientpublic class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);
}
}

4. 服务注册成功效果

服务名分组名称集群数目实例数健康实例数触发保护阈值操作
test-serverDEFAULT_GROUP111false详情|示例代码|删除

5. 更多配置项

配置项目默认值描述
服务器地址spring.cloud.nacos.discovery.server-addr
服务spring.cloud.nacos.discovery.servicespring.application.name服务ID到注册表
重量spring.cloud.nacos.discovery.weight1个值从1到100,值越大,权重越大
ipspring.cloud.nacos.discovery.ip注册表的IP地址,最高优先级
网络接口spring.cloud.nacos.discovery.network-interface未配置IP时,注册的IP地址为该网络接口对应的IP地址。如果未配置此项,则默认使用第一个网络接口的地址。
港口spring.cloud.nacos.discovery.port-1端口到注册表,无需配置即可自动检测
名字空间spring.cloud.nacos.discovery.namespace常见方案之一是分离不同环境的配置,例如测试环境的开发和生产环境的资源隔离。
快捷键spring.cloud.nacos.discovery.access-key
密钥spring.cloud.nacos.discovery.secret-key
元数据spring.cloud.nacos.discovery.metadata扩展数据,使用地图格式进行配置
日志名称spring.cloud.nacos.discovery.log名称
终点spring.cloud.nacos.discovery.endpoint服务的域名,通过该域名可以动态获取服务器地址。
整合功能区ribbon.nacos.enabledtrue
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值