Linux 上安装部署Nacos

àì夳堔傛蜴生んèń 2023-10-14 16:42 189阅读 0赞

标题:在Linux上安装和部署Nacos

在这里插入图片描述

Nacos是一个开源的分布式服务发现和配置管理平台,它可以帮助开发人员实现微服务架构中的服务注册、发现和动态配置管理。

步骤1:准备工作

在开始安装Nacos之前,确保您已经具备以下条件:

  1. Linux环境:您可以选择使用Ubuntu、CentOS或其他基于Linux的发行版。
  2. Java环境:Nacos是基于Java开发的,所以您需要安装Java Runtime Environment (JRE)。

步骤2:下载Nacos

下载地址

  1. 使用以下命令下载Nacos压缩包(请根据您需要的版本进行调整):

    wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz

  2. 解压下载的压缩包:

    tar -xvf nacos-server-2.2.3.tar.gz

步骤3:创建数据库

  1. 在MySQL中创建Nacos数据库

    CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  2. 初始化数据库,运行nacos/conf/mysql-schema.sql文件或直接运行下面SQL。

    /**/
    / 数据库全名 = 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(128) DEFAULT NULL,
    content longtext NOT NULL COMMENT ‘content’,
    md5 varchar(32) DEFAULT NULL COMMENT ‘md5’,
    gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
    gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’,
    src_user text COMMENT ‘source user’,
    src_ip varchar(50) 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,
    encrypted_data_key text NOT NULL COMMENT ‘秘钥’,
    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(128) 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=’增加租户字段’;

  1. /******************************************/
  2. /* 数据库全名 = nacos_config */
  3. /* 表名称 = config_info_beta */
  4. /******************************************/
  5. CREATE TABLE `config_info_beta` (
  6. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  7. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  8. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  9. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  10. `content` longtext NOT NULL COMMENT 'content',
  11. `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  12. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  13. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  14. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  15. `src_user` text COMMENT 'source user',
  16. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  17. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  18. `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  19. PRIMARY KEY (`id`),
  20. UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
  22. /******************************************/
  23. /* 数据库全名 = nacos_config */
  24. /* 表名称 = config_info_tag */
  25. /******************************************/
  26. CREATE TABLE `config_info_tag` (
  27. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  28. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  29. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  30. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  31. `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  32. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  33. `content` longtext NOT NULL COMMENT 'content',
  34. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  35. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  36. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  37. `src_user` text COMMENT 'source user',
  38. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  39. PRIMARY KEY (`id`),
  40. UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
  42. /******************************************/
  43. /* 数据库全名 = nacos_config */
  44. /* 表名称 = config_tags_relation */
  45. /******************************************/
  46. CREATE TABLE `config_tags_relation` (
  47. `id` bigint(20) NOT NULL COMMENT 'id',
  48. `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  49. `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  50. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  51. `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  52. `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  53. `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  54. PRIMARY KEY (`nid`),
  55. UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  56. KEY `idx_tenant_id` (`tenant_id`)
  57. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
  58. /******************************************/
  59. /* 数据库全名 = nacos_config */
  60. /* 表名称 = group_capacity */
  61. /******************************************/
  62. CREATE TABLE `group_capacity` (
  63. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  64. `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  65. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  66. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  67. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  68. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  69. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  70. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  71. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  72. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  73. PRIMARY KEY (`id`),
  74. UNIQUE KEY `uk_group_id` (`group_id`)
  75. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
  76. /******************************************/
  77. /* 数据库全名 = nacos_config */
  78. /* 表名称 = his_config_info */
  79. /******************************************/
  80. CREATE TABLE `his_config_info` (
  81. `id` bigint(20) unsigned NOT NULL,
  82. `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  83. `data_id` varchar(255) NOT NULL,
  84. `group_id` varchar(128) NOT NULL,
  85. `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  86. `content` longtext NOT NULL,
  87. `md5` varchar(32) DEFAULT NULL,
  88. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  89. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  90. `src_user` text,
  91. `src_ip` varchar(50) DEFAULT NULL,
  92. `op_type` char(10) DEFAULT NULL,
  93. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  94. `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  95. PRIMARY KEY (`nid`),
  96. KEY `idx_gmt_create` (`gmt_create`),
  97. KEY `idx_gmt_modified` (`gmt_modified`),
  98. KEY `idx_did` (`data_id`)
  99. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
  100. /******************************************/
  101. /* 数据库全名 = nacos_config */
  102. /* 表名称 = tenant_capacity */
  103. /******************************************/
  104. CREATE TABLE `tenant_capacity` (
  105. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  106. `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  107. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  108. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  109. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  110. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  111. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  112. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  113. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  114. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  115. PRIMARY KEY (`id`),
  116. UNIQUE KEY `uk_tenant_id` (`tenant_id`)
  117. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
  118. CREATE TABLE `tenant_info` (
  119. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  120. `kp` varchar(128) NOT NULL COMMENT 'kp',
  121. `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  122. `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  123. `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  124. `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  125. `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  126. `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  127. PRIMARY KEY (`id`),
  128. UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  129. KEY `idx_tenant_id` (`tenant_id`)
  130. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
  131. CREATE TABLE `users` (
  132. `username` varchar(50) NOT NULL PRIMARY KEY,
  133. `password` varchar(500) NOT NULL,
  134. `enabled` boolean NOT NULL
  135. );
  136. CREATE TABLE `roles` (
  137. `username` varchar(50) NOT NULL,
  138. `role` varchar(50) NOT NULL,
  139. UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
  140. );
  141. CREATE TABLE `permissions` (
  142. `role` varchar(50) NOT NULL,
  143. `resource` varchar(255) NOT NULL,
  144. `action` varchar(8) NOT NULL,
  145. UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
  146. );
  147. INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
  148. INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

步骤4:配置Nacos

  1. 进入目录

    cd nacos/conf

  2. 修改配置文件

    vim application.properties

    • 配置数据源为MySQL。

    spring.sql.init.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos223?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=nacos223
    db.password.0=nacos223

  3. 开启鉴权,设置秘钥(这里的秘钥设置成自己不低于32位的Base64编码字符串)
    nacos鉴权文档

    开启鉴权

    nacos.core.auth.enabled=true

    设置秘钥

    nacos.core.auth.server.identity.key=V5OqtpOTrKhpEbUGejyJUEQAda42JmFXREuXwRB8CZc=
    nacos.core.auth.server.identity.value=V5OqtpOTrKhpEbUGejyJUEQAda42JmFXREuXwRB8CZc=
    nacos.core.auth.plugin.nacos.token.secret.key=Rm9xt+w4p3LWqIPPDhumcqCf5rGIZRMFviBbQ9Vq0Vo=

  4. 在Linux中生成Base64编码并指定长度:

    openssl rand -base64 32

步骤5:启动Nacos

  1. 进入解压后的目录:

    cd nacos/bin

  2. 在终端中运行以下命令以启动Nacos服务:

    sh startup.sh -m standalone

这将以独立模式启动Nacos服务。

  1. 查看日志输出,表示Nacos已经成功启动:

    tail -20f /www/apps/nacos/logs/start.out

在这里插入图片描述

步骤6:访问Nacos控制台

在浏览器中输入以下地址,默认账号密码:nacos/nacos,即可访问Nacos控制台:

  1. http://localhost:8848/nacos

在这里插入图片描述

您将被引导到Nacos的Web界面,可以在此界面中管理服务实例、配置和命名空间等内容。

步骤7:关闭Nacos

当您不再需要Nacos服务时,可以在终端中使用以下命令关闭它:

  1. sh shutdown.sh

总结

通过按照上述步骤,在Linux操作系统上安装和部署Nacos是相对简单的。Nacos作为一个功能强大的服务发现和配置管理平台,可以帮助开发人员更好地构建和管理微服务架构。在安装完成后,您可以通过Nacos的控制台来管理服务实例、配置信息等内容,从而为您的微服务架构提供更好的支持。希望本篇博客对您在Linux上安装和部署Nacos有所帮助!

发表评论

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

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

相关阅读

    相关 linux部署单机Nacos

    Nacos介绍:微服务架构里一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos是阿里巴巴项目。 Nacos =Eureka + config + b