centos7 在docker中安装nacos 2.0.0 存储用mysql 8

Nacos是阿里开源的一个统一配置/注册中心的开源软件。
官网:https://nacos.io/
代码:https://github.com/alibaba/nacos
阿里云官网有一个现成版本可以免安装直接用(缺点:每个空间限制200个key) https://acmnext.console.aliyun.com/public

注意:nacos>=1.3.1的版本才开始支持mysql 8.0.x

配置建议:实际运行内存预计使用1.2G左右,建议选择内存大一点的服务器(2G+)。
实测2G内存的服务器装了其他的东西,安装nacos 2.0导致CPU跑满,主要卡在GC这,换个内存大的服务器(8G)正常运行

一、说明下2.0和1.4版本的的差异(有升级需求的关注下,没有忽略)

1.1 SQL数据结构上,时间类型的默认值有调整,如下图(左边是2.0右边是1.4)

1.2 索引有变化

1.3 docker容器里的配置文件application.properties对比没有变化

二、创建nacos存储的数据库

sql链接地址:nacos-db.sql ,也可在github发布的压缩包 路径nacos\conf\nacos-mysql.sql里找到
执行sql脚本后如下图:

三、创建宿主机挂载目录

主要用于存放nacos日志

mkdir -p /data/nacos/logs/

四、获取nacos镜像

docker search nacos

指定版本拉取镜像的,查看tag https://hub.docker.com/r/nacos/nacos-server/tags?page=1&ordering=last_updated
docker pull nacos/nacos-server:2.0.0

五、运行容器

官方docker参考:https://nacos.io/zh-cn/docs/quick-start-docker.html
注意:不同nacos版本可能参数有变化,进入容器docker exec -it nacos bash查看cat /home/nacos/conf/application.properties里的参数名
MYSQL_SERVICE_DB_PARAM:数据库链接字符串后的参数,默认值:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
传环境变量运行nacos单机模式(修改下面的数据库链接):

docker run -d \
-v /data/nacos/logs:/home/nacos/logs \
-e TZ="Asia/Shanghai" \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库IP地址 \
-e MYSQL_SERVICE_PORT=数据库端口 \
-e MYSQL_SERVICE_USER=数据库账户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM= \
-e NACOS_APPLICATION_PORT=8848 \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server:2.0.0

查看运行的nacos容器docker ps -a

如果发生错误,无法启动nacos,查看容器日志docker logs -f --tail=50 nacos 或者查看start.outcat /data/nacos/logs/start.out
查看docker运行状态docker stats,下图第一个nacos是2.0的版本,下面是1.4的版本

配置好数据库存储,即使删除docker容器再重开,配置依然在,便于后续升级nacos版本!!!

六、配置域名 nginx等

nginx参考配置如下,默认账号密码:nacos

    server {
        listen       80;
        server_name  config.yuming.com;    # 绑定域名
        location / {
          rewrite ^ http://$server_name/nacos redirect;
        }
        location /nacos {
          proxy_pass http://localhost:8848;             #反向代理地址+端口
          proxy_set_header Host $http_host;             #设置Host
          proxy_set_header X-Real-Ip $remote_addr;      #设置客户端远程地址
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-NginX-Proxy true;
        }
    }


六、sdk接入说明

链接:https://github.com/nacos-group/

语言 SDK
c++ https://github.com/nacos-group/nacos-sdk-cpp
c# https://github.com/nacos-group/nacos-sdk-csharp
nodejs https://github.com/nacos-group/nacos-sdk-nodejs
go https://github.com/nacos-group/nacos-sdk-go
pyhton https://github.com/nacos-group/nacos-sdk-python
posted @ 2021-03-26 17:06  nickchou  阅读(3218)  评论(0编辑  收藏  举报