• SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)


    SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)

    问题背景

    从零开始学springcloud微服务项目
    注意事项:

    • 约定 > 配置 > 编码
    • IDEA版本2021.1
    • 这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了
    • controller调service,service调dao
    • 默认安装nginx
    • 项目源码以及sentinel安装包

    nacos命名空间

    1 默认命名空间为:public

    2 创建新分组


    3 更改bootstrap和application

    spring:
      profiles:
        #active: dev # 表示开发环境
        active: info
    
    • 1
    • 2
    • 3
    • 4
    # 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    nacos集群和持久化

    1 Nacos默认自带的是嵌入式数据库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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4 添加集群nacos的ip端口



    192.168.207.128:8848
    192.168.207.128:8849
    192.168.207.128:8850
    
    • 1
    • 2
    • 3

    5 启动nacos/bin/startup.sh

    nginx配置

    1 打开配置,更改

    vim /usr/local/nginx/conf/nginx.conf
    
    • 1
    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; 
        } 
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2 测试通过nginx访问nacos:http://192.168.207.128:80/nacos
    3 yml更改为:

    server-addr: 192.168.207.128:80
    
    • 1

    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 …

    Lyric: 几个高级和弦 几个切分音

  • 相关阅读:
    我用开天平台做了一个字符串检查API,hin 简单~~
    项目实战:组件扫描(4)-筛选带有RequestMapping注解的bean实例
    spring设置kafka超时时间没有生效的解决方法(解决rebalancing问题)
    安卓文件资源中,一个字串包含引用其他字串的写法
    python实操-----图书管理系统
    [概述] 获取点云数据的仪器
    vue内置组件keep-alive多级路由缓存最佳实践
    生信教程:使用全基因组SNP数据进行ABBA-BABA分析
    使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅
    m基于matlab的wcdma软切换算法的研究分析和仿真
  • 原文地址:https://blog.csdn.net/cucgyfjklx/article/details/125434980