栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Linux部署Nacos并配置MySQL数据源,把Springboot的配置文件放到nacos并使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux部署Nacos并配置MySQL数据源,把Springboot的配置文件放到nacos并使用

Linux部署Nacos并配置MySQL数据源,将Springboot的yaml配置文件部署连接到Nacos
  • 前言
  • 一、Docker中安装配置Nacos
    • 安装Docker
    • 拉取Nacos镜像
    • 启动Nacos容器
    • 开放防火墙端口
    • 在 MySQL 中创建 nacos 数据库
    • 登录 nacos
  • 二、把 Springboot 的配置文件放到 nacos 并使用
    • 1.引入依赖
    • 2.配置 nacos 的yaml
  • 总结


前言

昨天在学习 nacos 的部署和使用,发现网上的教程基本一模一样,都在抄来抄去,让你配置了一大堆东西,引入的依赖也是千奇百怪,就连 nacos 官方的教程都无法让你成功连接上配置中心。

现在我学会了,让我来教你们,太简单了,大家不要看网上和官方的那些东西


一、Docker中安装配置Nacos

当然如果不安装在 Docker 里也行,不安装在 Docker 把在 Nacos 的官网下载文件,直接解压就行,跳过 docker pull 和 run 的过程就可以了,然后你要把 nacos 注册为服务,开机启动,然后其他步骤都一样,总之不安装在 Docker 有点麻烦的。

安装Docker

所有 Linux 系统通用安装命令

curl -sSL https://get.daocloud.io/docker | sh
拉取Nacos镜像

注意,一定要拉取 1.4.1 的版本,因为下面我给的配置文件是 1.4.1 的,其他版本都会启动失败,Nacos 就是这么的恶心。拉取有点慢,耐心等待。

docker pull nacos/nacos-server:1.4.1
启动Nacos容器

全都粘贴到命令行一直回车就行了,不是一行一行粘的哈

docker run -d --name nacos 
-e PREFER_HOST_MODE=hostname 
-e MODE=standalone 
-e SPRING_DATASOURCE_PLATFORM=mysql 
-e MYSQL_SERVICE_HOST=111.111.111.111 
-e MYSQL_SERVICE_PORT=3306 
-e MYSQL_SERVICE_DB_NAME=nacos 
-e MYSQL_SERVICE_USER=root 
-e MYSQL_SERVICE_PASSWORD=root 
-p 8848:8848 nacos/nacos-server:1.4.1

上面的 111.111.111.111 写你的 MySQL 数据库的 IP,然后是端口,数据库名称 (数据库名称一定要是 nacos,这是官方指定的,nacos库要自己创建,sql 文件官网下载的压缩包解压出来就有,为了方便我下面教你们安装 MySQL 和建库的时候直接贴给你们) ,账号,密码

开放防火墙端口
systemctl status firewalld    #首先查看火墙状态,如果防火墙没开,下面的不用看了
firewall-cmd --zone=public --add-port=8848/tcp --permanent #意思是放行 8848 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent #你指定的数据库的端口也要放行
firewall-cmd --reload   ##重新加载火墙,使放行的端口生效
在 MySQL 中创建 nacos 数据库

nacos 数据库用于给 nacos 指定数据源,不然启动不了的,Docker 安装 MySQL 的方法后面我再单独写,你们先看看其他的,5.6之前和 5.6之后 和 8 的版本配置文件都不一样。

进入 MySQL 容器,创建 nacos 数据库,切换到创建的 nacos 数据库,基本操作代码自己敲

然后!!!把下面的 SQL 文件全都复制到 mysql> 后面,然后等它运行完,运行完以后看看是不是最后一句话没有运行,我的最后一句就没有运行,再敲一下回车就 OK

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';



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='增加租户字段';



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';


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';



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';



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容量信息表';



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='多租户改造';



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,

	constraint uk_username_role UNIQUE (username,role)

);



CREATE TABLE permissions (

    role varchar(50) NOT NULL,

    resource varchar(512) NOT NULL,

    action varchar(8) NOT NULL,

    constraint uk_role_permission UNIQUE (role,resource,action)

);



INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);



INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');


最重要的是!!!,要记得重启一下 nacos

docker restart nacos
登录 nacos

如果你的 Linux 服务器没有界面,就在一台 Windows 电脑上登录,因为上面防火墙已经开放端口,浏览器地址栏输入 IP:8848/nacos 就可以了。默认账号密码都是 nacos

然后按照我下面的标记,创建新的 命名空间 ,默认的命名空间是 public,不建议用,最好一个项目一个命名空间。

回到我们的配置列表,点击刚刚创建的命名空间


点击右边蓝色 + 号,创建一个 yaml,这个 Data Id 建议都是这个格式,如果项目有多个配置文件,就 application-xx.yaml ,默认就起这个名字 application.yaml

Group 的话默认是这个,建议改一下,不改的话可能会出问题,只是可能,我就先不改了,然后下面类型选择 yaml,把你的 springboot 项目配置文件全都粘贴到下面的框里。

Nacos 的安装和配置就完成了,下面我们开始把 Springboot 的配置文件放到 nacos 并使用


二、把 Springboot 的配置文件放到 nacos 并使用 1.引入依赖

只需要这两个,网上那些引了一堆的不要信,版本不要改,nacos 很恶心

Maven这样引


    com.alibaba.nacos
    nacos-client
    1.4.1


    com.alibaba.cloud
    spring-cloud-starter-stream-rocketmq
    2.2.0.RELEASE

Gradle这样引

compile group: 'com.alibaba.cloud', name: 'spring-cloud-stream-binder-rocketmq', version: '2.2.0.RELEASE'
compile group: 'com.alibaba.nacos', name: 'nacos-client', version: '1.4.1'
2.配置 nacos 的yaml

在 resources 下面新建 bootstrap.properties ,yml 也行

里面这样写

spring.application.name=test #不重要,可以不写,写你的项目名就行
spring.cloud.nacos.config.group=DEFAULT_GROUP #这个组就是上面创建的时候填的那个
spring.main.allow-bean-definition-overriding=true

#nacos配置中心
spring.cloud.nacos.config.server-addr=111.111.111.111:8848  #这个IP就是你的nacos的地址
#命名空间
spring.cloud.nacos.config.namespace=51f82ad7-11fd-413a-9b0a-fd11ee1213d7 #这个是你创建的命名空间 test 右边的那一串很长的字符,看我上面的图片
#默认加载配置前缀后缀
spring.cloud.nacos.config.prefix=application
spring.cloud.nacos.config.file-extension=yaml

#额外的配置文件,这个就是我上面说的如果一个项目有多个配置文件要启动,就可以在nacos再新建一个文件,我只用一个,所以下面的注释掉
#database
#spring.cloud.nacos.config.shared-configs[0].data-id=application-database.yaml
#spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
#spring.cloud.nacos.config.shared-configs[0].refresh=true

#这一句true就是优先使用nacos里的配置文件,注意只是优先,也就是说,nacos和本地都有的配置,nacos的起作用,如果本地有的而nacos没有的配置,本地的那个比nacos多出来的配置还是会加载的
#如果是false就是不使用nacos里的,只是本地配置文件生效
spring.cloud.nacos.config.enabled=true

然后全部结束,直接启动项目吧


总结

本篇的 nacos 是单机部署,后面研究研究配合 Dubbo 的集群部署吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号