微服务之nacos及数据持久化

nacos安装很简单,根据官方文档下载解压启动即可:
但是需要做一些配置,特别是在生产环境上。比如数据持久化需要配置mysql

Nacos数据持久化:
修改Nacos的数据持久化配置为MySQL存储。默认情况下,Nacos使用嵌入式数据库CMDB实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只要支持MySQL的存储
配置Nacos的MySQL存储只需要下面三步:
第一步:安装数据库,版本要求:5.6.5+ (我在centos7.4使用yum安装了mysql5.7)
第二步:初始化MySQL数据库,数据库初始化文件:nacos-mysql.sql,该文件可以在Nacos程序包下的conf目录下获得。执行完成后可以得到nacos数据库中如下图所示的表结构:
初始化方法:
登录数据库
创建nacos数据库:
CREATE DATABASE IF NOT EXISTS nacos DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #nacos-mysql.sql里面默认是创建nacos_config库
use nacos;
source /usr/local/nacos/conf/nacos-mysql.sql;  # 初始化nacos表
完成后即可看到nacos库里面的这些表。

mysql> use nacos;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------+
| Tables_in_nacos      |
+----------------------+
| config_info          |
| config_info_aggr     |
| config_info_beta     |
| config_info_tag      |
| config_tags_relation |
| group_capacity       |
| his_config_info      |
| roles                |
| tenant_capacity      |
| tenant_info          |
| users                |
+----------------------+
11 rows in set (0.00 sec)
第三步:修改conf/application.properties文件,增加支持MySQL数据源配置,添加(目前只支持mysql)数据源的url、用户名和密码。配置样例如下:

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true  # localhost改成自己mysql的连接地址
db.user=root       #使用的mysql用户名
db.password=xxx    #使用的mysql连接密码
到这里,Nacos数据存储到MySQL的配置就完成了,可以尝试继续用单机模式启动Nacos。然后再根据之前学习的Nacos配置中心的用法来做一些操作,配合MySQL工具(或者直接服务器登录mysql)就可以看到数据已经写入到数据库中了。
第四步:授权数据库。上面配置了增加mysql数据源的支持以后,需要授权连接mysql的具体权限 如:
允许192.168.1.100 使用root账号登录
首先在mysql服务器上登录mysql,然后授权:
grant all privileges on *.* to 'root'@'192.168.1.100' identified by 'passwd';
flush privileges;
如果没有做这一步授权,则启动nacos以后,nacos.log日志会报错,提示数据源没有设置。可能就是因为没有授权的原因。

Caused by: java.lang.RuntimeException: Nacos Server did not start because dumpservice bean construction failure :
No DataSource set
注意:nacos默认的web登录用户名密码都是nacos。因此需要java开发利用nacos自带的加密方法加密一下。加密完后,直接去nacos的user表里面将加密后的密码进行替换。但是nacos的web登录在的时候还是使用明文进行验证登录的,而不是使用加密后字符串进行登录的
需要更改nacos的默认密码,可以参考:

 

更改nacos监听端口方法:
1、更改nacos配置文件application.properties
vim /usr/local/nacos/conf/application.properties
server.port=8847
2、然后更改startup.sh,增加一个参数(大概是77行):
vim /usr/local/nacos/bin/startup.sh
JAVA_OPT="${JAVA_OPT} -Dserver.port=8847"

 

版权声明:
作者:allenjol
链接:https://www.ayunw.cn/archives/505
来源:爱生活,爱运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>