Nacos适配达梦

  1. 下载nacos源码

GitHub下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.2
Gitee下载地址:https://gitee.com/mirrors/Nacos/tree/2.1.2

  1. idea安装protobuf插件

在这里插入图片描述

  1. 使用maven编译项目

在这里插入图片描述
遇到xxx不存在的就clean后compile一遍
在这里插入图片描述

  1. 修改pom文件,引入达梦驱动(中央仓库和阿里的仓库都有)
			<dependency>
                <groupId>com.dameng</groupId>
                <artifactId>DmJdbcDriver18</artifactId>
                <version>8.1.1.193</version>
                <!-- <version>1.8</version> -->
            </dependency>

修改父工程的pom文件,并注释掉mysql的依赖:
在这里插入图片描述
在这里插入图片描述
修改naming模块和config模块下的pom文件,同样注掉MySQL驱动:
在这里插入图片描述
在这里插入图片描述
5. 修改console模块下的application.properties:

spring.datasource.platform=mysql,此处依然是mysql,写dm的话会导致启动时no datasource set;
platform只是表示是否使用外置数据库 ; 使用什么数据库则由db.jdbcDriverName决定

### If use MySQL as datasource: 
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.jdbcDriverName=dm.jdbc.driver.DmDriver
db.url.0=jdbc:dm://localhost:5236/NACOS?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
db.user.0=NACOS
db.password.0=xxx
  1. 修改distribution模块下的application.properties:
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.jdbcDriverName=dm.jdbc.driver.DmDriver
db.url.0=jdbc:dm://localhost:5236/NACOS?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
db.user.0=NACOS
db.password.0=xxx
  1. 修改nacos-config模块下的com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceProperties.java文件
    (1).添加private String jdbcDriverName;
    (2).private static final String TEST_QUERY = “SELECT 1 FROM dual”;
    (3).
//poolProperties.setDriverClassName(jdbcDriverName);
            if (StringUtils.isEmpty(jdbcDriverName)) {
                poolProperties.setDriverClassName(JDBC_DRIVER_NAME);
            } else {
                poolProperties.setDriverClassName(jdbcDriverName);
            }

完整代码如下:

/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */

package com.alibaba.nacos.config.server.service.datasource;

import com.alibaba.nacos.common.utils.Preconditions;
import com.alibaba.nacos.common.utils.StringUtils;
import com.zaxxer.hikari.HikariDataSource;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.core.env.Environment;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import static com.alibaba.nacos.common.utils.CollectionUtils.getOrDefault;

/**
 * Properties of external DataSource.
 *
 * @author Nacos
 */
public class ExternalDataSourceProperties {
    
    private static final String JDBC_DRIVER_NAME = "com.mysql.cj.jdbc.Driver";

    private String jdbcDriverName;

    private static final String TEST_QUERY = "SELECT 1 FROM dual";
    
    private Integer num;
    
    private List<String> url = new ArrayList<>();
    
    private List<String> user = new ArrayList<>();
    
    private List<String> password = new ArrayList<>();
    
    public void setNum(Integer num) {
        this.num = num;
    }
    
    public void setUrl(List<String> url) {
        this.url = url;
    }
    
    public void setUser(List<String> user) {
        this.user = user;
    }
    
    public void setPassword(List<String> password) {
        this.password = password;
    }

    public String getJdbcDriverName() {
        return jdbcDriverName;
    }

    public void setJdbcDriverName(String jdbcDriverName) {
        this.jdbcDriverName = jdbcDriverName;
    }

    
    /**
     * Build serveral HikariDataSource.
     *
     * @param environment {@link Environment}
     * @param callback    Callback function when constructing data source
     * @return List of {@link HikariDataSource}
     */
    List<HikariDataSource> build(Environment environment, Callback<HikariDataSource> callback) {
        List<HikariDataSource> dataSources = new ArrayList<>();
        Binder.get(environment).bind("db", Bindable.ofInstance(this));
        Preconditions.checkArgument(Objects.nonNull(num), "db.num is null");
        Preconditions.checkArgument(CollectionUtils.isNotEmpty(user), "db.user or db.user.[index] is null");
        Preconditions.checkArgument(CollectionUtils.isNotEmpty(password), "db.password or db.password.[index] is null");
        for (int index = 0; index < num; index++) {
            int currentSize = index + 1;
            Preconditions.checkArgument(url.size() >= currentSize, "db.url.%s is null", index);
            DataSourcePoolProperties poolProperties = DataSourcePoolProperties.build(environment);
            //poolProperties.setDriverClassName(jdbcDriverName);
            if (StringUtils.isEmpty(jdbcDriverName)) {
                poolProperties.setDriverClassName(JDBC_DRIVER_NAME);
            } else {
                poolProperties.setDriverClassName(jdbcDriverName);
            }
            poolProperties.setJdbcUrl(url.get(index).trim());
            poolProperties.setUsername(getOrDefault(user, index, user.get(0)).trim());
            poolProperties.setPassword(getOrDefault(password, index, password.get(0)).trim());
            HikariDataSource ds = poolProperties.getDataSource();
            ds.setConnectionTestQuery(TEST_QUERY);
            dataSources.add(ds);
            callback.accept(ds);
        }
        Preconditions.checkArgument(CollectionUtils.isNotEmpty(dataSources), "no datasource available");
        return dataSources;
    }
    
    interface Callback<D> {
        
        /**
         * Perform custom logic.
         *
         * @param datasource dataSource.
         */
        void accept(D datasource);
    }
}

  1. 修改 com/alibaba/nacos/config/server/constant/PropertiesConstant.java;
    将源代码的mysql改为DM
    在这里插入图片描述
  2. 修改com/alibaba/nacos/config/server/utils/PropertyUtil.java
    亦是将mysql改为DM
setUseExternalDB(PropertiesConstant.DM
                    .equalsIgnoreCase(getString(PropertiesConstant.SPRING_DATASOURCE_PLATFORM, "")));
  1. 修改com.alibaba.nacos.core.listener.StartingApplicationListener.java

在这里插入图片描述

  1. 编辑启动类,加入-Dnacos.standalone=true参数,意思是以单机模式启动,启动类在console/src/main/java/com/alibaba/nacos/Nacos.java
    在这里插入图片描述
  2. 数据库脚本,“NACOS”为模式名
CREATE TABLE "NACOS"."config_info"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(255),
"content" CLOB NOT NULL,
"md5" VARCHAR(32),
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"src_user" TEXT,
"src_ip" VARCHAR(50),
"app_name" VARCHAR(128),
"tenant_id" VARCHAR(128) DEFAULT '',
"c_desc" VARCHAR(256),
"c_use" VARCHAR(64),
"effect" VARCHAR(64),
"type" VARCHAR(64),
"c_schema" TEXT,
"encrypted_data_key" TEXT NOT NULL,
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_configinfo_datagrouptenant" UNIQUE("data_id", "group_id", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."config_info" IS 'config_info';
COMMENT ON COLUMN "NACOS"."config_info"."content" IS 'content';
COMMENT ON COLUMN "NACOS"."config_info"."data_id" IS 'data_id';
COMMENT ON COLUMN "NACOS"."config_info"."encrypted_data_key" IS '秘钥';
COMMENT ON COLUMN "NACOS"."config_info"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."config_info"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."config_info"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."config_info"."md5" IS 'md5';
COMMENT ON COLUMN "NACOS"."config_info"."src_ip" IS 'source ip';
COMMENT ON COLUMN "NACOS"."config_info"."src_user" IS 'source user';
COMMENT ON COLUMN "NACOS"."config_info"."tenant_id" IS '租户字段';


CREATE TABLE "NACOS"."config_info_aggr"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(255) NOT NULL,
"datum_id" VARCHAR(255) NOT NULL,
"content" CLOB NOT NULL,
"gmt_modified" TIMESTAMP(0) NOT NULL,
"app_name" VARCHAR(128),
"tenant_id" VARCHAR(128) DEFAULT '',
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_configinfoaggr_datagrouptenantdatum" UNIQUE("data_id", "group_id", "tenant_id", "datum_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."config_info_aggr" IS '增加租户字段';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."content" IS '内容';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."data_id" IS 'data_id';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."datum_id" IS 'datum_id';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."group_id" IS 'group_id';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."config_info_aggr"."tenant_id" IS '租户字段';


CREATE TABLE "NACOS"."config_info_beta"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(128) NOT NULL,
"app_name" VARCHAR(128),
"content" CLOB NOT NULL,
"beta_ips" VARCHAR(1024),
"md5" VARCHAR(32),
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"src_user" TEXT,
"src_ip" VARCHAR(50),
"tenant_id" VARCHAR(128) DEFAULT '',
"encrypted_data_key" TEXT NOT NULL,
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_configinfobeta_datagrouptenant" UNIQUE("data_id", "group_id", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."config_info_beta" IS 'config_info_beta';
COMMENT ON COLUMN "NACOS"."config_info_beta"."app_name" IS 'app_name';
COMMENT ON COLUMN "NACOS"."config_info_beta"."beta_ips" IS 'betaIps';
COMMENT ON COLUMN "NACOS"."config_info_beta"."content" IS 'content';
COMMENT ON COLUMN "NACOS"."config_info_beta"."data_id" IS 'data_id';
COMMENT ON COLUMN "NACOS"."config_info_beta"."encrypted_data_key" IS '秘钥';
COMMENT ON COLUMN "NACOS"."config_info_beta"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."config_info_beta"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."config_info_beta"."group_id" IS 'group_id';
COMMENT ON COLUMN "NACOS"."config_info_beta"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."config_info_beta"."md5" IS 'md5';
COMMENT ON COLUMN "NACOS"."config_info_beta"."src_ip" IS 'source ip';
COMMENT ON COLUMN "NACOS"."config_info_beta"."src_user" IS 'source user';
COMMENT ON COLUMN "NACOS"."config_info_beta"."tenant_id" IS '租户字段';


CREATE TABLE "NACOS"."config_info_tag"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(128) NOT NULL,
"tenant_id" VARCHAR(128) DEFAULT '',
"tag_id" VARCHAR(128) NOT NULL,
"app_name" VARCHAR(128),
"content" CLOB NOT NULL,
"md5" VARCHAR(32),
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"src_user" TEXT,
"src_ip" VARCHAR(50),
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_configinfotag_datagrouptenanttag" UNIQUE("data_id", "group_id", "tenant_id", "tag_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."config_info_tag" IS 'config_info_tag';
COMMENT ON COLUMN "NACOS"."config_info_tag"."app_name" IS 'app_name';
COMMENT ON COLUMN "NACOS"."config_info_tag"."content" IS 'content';
COMMENT ON COLUMN "NACOS"."config_info_tag"."data_id" IS 'data_id';
COMMENT ON COLUMN "NACOS"."config_info_tag"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."config_info_tag"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."config_info_tag"."group_id" IS 'group_id';
COMMENT ON COLUMN "NACOS"."config_info_tag"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."config_info_tag"."md5" IS 'md5';
COMMENT ON COLUMN "NACOS"."config_info_tag"."src_ip" IS 'source ip';
COMMENT ON COLUMN "NACOS"."config_info_tag"."src_user" IS 'source user';
COMMENT ON COLUMN "NACOS"."config_info_tag"."tag_id" IS 'tag_id';
COMMENT ON COLUMN "NACOS"."config_info_tag"."tenant_id" IS 'tenant_id';


CREATE TABLE "NACOS"."config_tags_relation"
(
"id" BIGINT NOT NULL,
"tag_name" VARCHAR(128) NOT NULL,
"tag_type" VARCHAR(64),
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(128) NOT NULL,
"tenant_id" VARCHAR(128) DEFAULT '',
"nid" BIGINT IDENTITY(1, 1) NOT NULL,
NOT CLUSTER PRIMARY KEY("nid"),
CONSTRAINT "uk_configtagrelation_configidtag" UNIQUE("id", "tag_name", "tag_type")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."config_tags_relation" IS 'config_tag_relation';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."data_id" IS 'data_id';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."group_id" IS 'group_id';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."tag_name" IS 'tag_name';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."tag_type" IS 'tag_type';
COMMENT ON COLUMN "NACOS"."config_tags_relation"."tenant_id" IS 'tenant_id';


CREATE  INDEX "INDEX27450417857800" ON "NACOS"."config_tags_relation"("tenant_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;

CREATE TABLE "NACOS"."group_capacity"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"group_id" VARCHAR(128) DEFAULT '' NOT NULL,
"quota" BIGINT DEFAULT 0 NOT NULL,
"usage" BIGINT DEFAULT 0 NOT NULL,
"max_size" BIGINT DEFAULT 0 NOT NULL,
"max_aggr_count" BIGINT DEFAULT 0 NOT NULL,
"max_aggr_size" BIGINT DEFAULT 0 NOT NULL,
"max_history_count" BIGINT DEFAULT 0 NOT NULL,
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_group_id" UNIQUE("group_id"),
CHECK("quota" >= 0)
,CHECK("usage" >= 0)
,CHECK("max_size" >= 0)
,CHECK("max_aggr_count" >= 0)
,CHECK("max_aggr_size" >= 0)
,CHECK("max_history_count" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."group_capacity" IS '集群、各Group容量信息表';
COMMENT ON COLUMN "NACOS"."group_capacity"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."group_capacity"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."group_capacity"."group_id" IS 'Group ID,空字符表示整个集群';
COMMENT ON COLUMN "NACOS"."group_capacity"."id" IS '主键ID';
COMMENT ON COLUMN "NACOS"."group_capacity"."max_aggr_count" IS '聚合子配置最大个数,,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."group_capacity"."max_aggr_size" IS '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."group_capacity"."max_history_count" IS '最大变更历史数量';
COMMENT ON COLUMN "NACOS"."group_capacity"."max_size" IS '单个配置大小上限,单位为字节,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."group_capacity"."quota" IS '配额,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."group_capacity"."usage" IS '使用量';


CREATE TABLE "NACOS"."his_config_info"
(
"id" DECIMAL(20,0) NOT NULL,
"nid" BIGINT IDENTITY(1, 1) NOT NULL,
"data_id" VARCHAR(255) NOT NULL,
"group_id" VARCHAR(128) NOT NULL,
"app_name" VARCHAR(128),
"content" CLOB NOT NULL,
"md5" VARCHAR(32),
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"src_user" TEXT,
"src_ip" VARCHAR(50),
"op_type" CHAR(10),
"tenant_id" VARCHAR(128) DEFAULT '',
"encrypted_data_key" TEXT NOT NULL,
NOT CLUSTER PRIMARY KEY("nid"),
CHECK("id" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."his_config_info" IS '多租户改造';
COMMENT ON COLUMN "NACOS"."his_config_info"."app_name" IS 'app_name';
COMMENT ON COLUMN "NACOS"."his_config_info"."encrypted_data_key" IS '秘钥';
COMMENT ON COLUMN "NACOS"."his_config_info"."tenant_id" IS '租户字段';


CREATE  INDEX "idx_gmt_create" ON "NACOS"."his_config_info"("gmt_create" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
CREATE  INDEX "idx_did" ON "NACOS"."his_config_info"("data_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
CREATE  INDEX "idx_gmt_modified" ON "NACOS"."his_config_info"("gmt_modified" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;

CREATE TABLE "NACOS"."permissions"
(
"role" VARCHAR(50) NOT NULL,
"resource" VARCHAR(255) NOT NULL,
"action" VARCHAR(8) NOT NULL,
CONSTRAINT "uk_role_permission" UNIQUE("role", "resource", "action")) STORAGE(ON "NACOS", CLUSTERBTR) ;

CREATE TABLE "NACOS"."roles"
(
"username" VARCHAR(50) NOT NULL,
"role" VARCHAR(50) NOT NULL,
CONSTRAINT "idx_user_role" UNIQUE("username", "role")) STORAGE(ON "NACOS", CLUSTERBTR) ;
insert into "NACOS"."roles"("username", "role")  VALUES('nacos', 'ROLE_ADMIN');


CREATE TABLE "NACOS"."tenant_capacity"
(
"id" BIGINT IDENTITY(1, 1) NOT NULL,
"tenant_id" VARCHAR(128) DEFAULT '' NOT NULL,
"quota" BIGINT DEFAULT 0 NOT NULL,
"usage" BIGINT DEFAULT 0 NOT NULL,
"max_size" BIGINT DEFAULT 0 NOT NULL,
"max_aggr_count" BIGINT DEFAULT 0 NOT NULL,
"max_aggr_size" BIGINT DEFAULT 0 NOT NULL,
"max_history_count" BIGINT DEFAULT 0 NOT NULL,
"gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_tenant_id" UNIQUE("tenant_id"),
CHECK("quota" >= 0)
,CHECK("usage" >= 0)
,CHECK("max_size" >= 0)
,CHECK("max_aggr_count" >= 0)
,CHECK("max_aggr_size" >= 0)
,CHECK("max_history_count" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."tenant_capacity" IS '租户容量信息表';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."id" IS '主键ID';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_aggr_count" IS '聚合子配置最大个数';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_aggr_size" IS '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_history_count" IS '最大变更历史数量';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_size" IS '单个配置大小上限,单位为字节,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."quota" IS '配额,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."tenant_id" IS 'Tenant ID';
COMMENT ON COLUMN "NACOS"."tenant_capacity"."usage" IS '使用量';


CREATE TABLE "NACOS"."tenant_info"
(
"id" BIGINT IDENTITY(3, 1) NOT NULL,
"kp" VARCHAR(128) NOT NULL,
"tenant_id" VARCHAR(128) DEFAULT '',
"tenant_name" VARCHAR(128) DEFAULT '',
"tenant_desc" VARCHAR(256),
"create_source" VARCHAR(32),
"gmt_create" BIGINT NOT NULL,
"gmt_modified" BIGINT NOT NULL,
NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "uk_tenant_info_kptenantid" UNIQUE("kp", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;

COMMENT ON TABLE "NACOS"."tenant_info" IS 'tenant_info';
COMMENT ON COLUMN "NACOS"."tenant_info"."create_source" IS 'create_source';
COMMENT ON COLUMN "NACOS"."tenant_info"."gmt_create" IS '创建时间';
COMMENT ON COLUMN "NACOS"."tenant_info"."gmt_modified" IS '修改时间';
COMMENT ON COLUMN "NACOS"."tenant_info"."id" IS 'id';
COMMENT ON COLUMN "NACOS"."tenant_info"."kp" IS 'kp';
COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_desc" IS 'tenant_desc';
COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_id" IS 'tenant_id';
COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_name" IS 'tenant_name';


CREATE  INDEX "idx_tenant_id" ON "NACOS"."tenant_info"("tenant_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;

CREATE TABLE "NACOS"."users"
(
"username" VARCHAR(50) NOT NULL,
"password" VARCHAR(500) NOT NULL,
"enabled" TINYINT NOT NULL,
NOT CLUSTER PRIMARY KEY("username")) STORAGE(ON "NACOS", CLUSTERBTR) ;
insert into "NACOS"."users"("username", "password", "enabled") VALUES('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);

  1. 启动Nacos.java,访问http://localhost:8848/nacos
    在这里插入图片描述
  2. 源码打包:
    (1).跳过格式校验:父工程pom.xml中注掉maven-pmd-plugin,maven-checkstyle-plugin相关控件配置
    (2).跳过认证:父工程pom.xml中注掉apache-rat-plugin控件配置
    (3).在idea终端执行打包命令

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
在这里插入图片描述
打包成功后的压缩包是在distribution模块下的target下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream答案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值