SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)
- 问题背景
- nacos命名空间
- nacos集群和持久化
- nginx配置
- Lyric: 几个高级和弦 几个切分音
问题背景
从零开始学springcloud微服务项目
注意事项:
- 约定 > 配置 > 编码
- IDEA版本2021.1
- 这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了
- controller调service,service调dao
- 默认安装nginx
- 项目源码以及sentinel安装包
nacos命名空间
1默认命名空间为:public
2创建新分组
3更改bootstrap和application
spring:
profiles:
#active: dev # 表示开发环境
active: info
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #配置Nacos地址 #Nacos作为配置中心地址
file-extension: yml #指定yml格式的配置
group: DEV_GROUP #设置分组
# ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yml
4新建命名空间
5 bootstap添加命名空间:namespace: da7f89ef-5fb2-49c5-96bb-6fabcf44d1d5 #选择dev
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #配置Nacos地址 #Nacos作为配置中心地址
file-extension: yml #指定yml格式的配置
namespace: da7f89ef-5fb2-49c5-96bb-6fabcf44d1d5 #选择dev
group: DEV_GROUP #设置分组
# ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yml
nacos集群和持久化
1Nacos默认自带的是嵌入式数据库derby,集群搭建会产生数据一致性问题,所以需要mysql解决问题
2在nacos-server-2.0.3\nacos\conf目录下找到sql脚本
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');
3在nacos-server-2.0.3\nacos\conf目录下找到application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
4添加集群nacos的ip端口
192.168.207.128:8848
192.168.207.128:8849
192.168.207.128:8850
5启动nacos/bin/startup.sh
nginx配置
1打开配置,更改
vim /usr/local/nginx/conf/nginx.conf
upstream nacos-cluster {
server 192.168.207.128:8848;
server 192.168.207.128:8849;
server 192.168.207.128:8850;
}
server {
listen 80; #端口可以改
server_name www.nacos-test.com;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://nacos-cluster;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2测试通过nginx访问nacos:http://192.168.207.128:80/nacos
3yml更改为:
server-addr: 192.168.207.128:80
SpringCloud无介绍快使用,Seata处理分布式事务(二十五)
SpringCloud无介绍快使用,sentinel服务熔断功能(二十四)
SpringCloud无介绍快使用,sentinel注解@SentinelResource的基本使用(二十三)
SpringCloud无介绍快使用,sentinel热点key限流与系统规则的基本使用(二十二)
SpringCloud无介绍快使用,sentinel熔断降级和限流的基本使用(二十一)
SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)
SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)
SpringCloud无介绍快使用,nacos注册中心的基本使用(十八)
SpringCloud无介绍快使用,gateway通过微服务名实现动态路由(十七)
SpringCloud无介绍快使用,gateway的基本使用(十六)
SpringCloud无介绍快使用,Ribbon负载均衡工具与OpenFeign的使用(十五)
SpringCloud无介绍快使用,使用Zookeeper替换Eureka服务注册与发现(十四)
SpringCloud无介绍快使用,服务发现Discovery和Eureka自我保护(十三)
SpringCloud无介绍快使用,集群cloud-provider-payment8002搭建(十二)
SpringCloud无介绍快使用,集群Eureka服务注册中心cloud-eureka-server7002搭建(十一)
SpringCloud无介绍快使用,单机Eureka服务注册中心cloud-eureka-server7001搭建(十)
SpringCloud无介绍快使用,新建cloud-api-commons公共模块module(九)
SpringCloud无介绍快使用,新建子module消费者订单模块(八)
SpringCloud无介绍快使用,热部署devtools配置(七)
SpringCloud无介绍快使用,子module提供者支付微服务业务开发(六)
SpringCloud无介绍快使用,新建子module提供者支付微服务yml整合和新建启动类(五)
SpringCloud无介绍快使用,新建子module提供者支付微服务pom整合(四)
SpringCloud无介绍快使用,springcloud父工程pom文件整理(三)
SpringCloud无介绍快使用,IDEA新建springcloud父工程(二)
SpringCloud无介绍快使用,与Spingboot之间的兼容版本选择(一)
作为程序员第 187 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …