Docker部署nacos【单机】

介绍参考:https://yq.aliyun.com/articles/695281

一、介绍

Nacos是阿里巴巴最新开源的项目,核心定位是“一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”,项目地址:https://nacos.io/zh-cn/

Nacos核心提供两个功能:服务注册与发现,动态配置管理。

服务注册与发现

Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现,也支持RPC如dubbo的服务注册与发现。

与Dubbo使用的zookeeper相比而言,两者差异还是比较大的,zookeeper是一种分布式的协调服务,它天生是作为分布式数据一致性场景下的解决方案,所以zookeeper是CP的,它牺牲了可用性来保证一致性,在极端情况下(master选举期间)服务会对外停止,对于服务可用性要求比较高的系统是难以接受的。Nacos是一种去中心化的架构,属于CAP理论里的AP架构,支持最终一致性,在分布式服务发现与注册场景下具有很不错的性能。目前dubbo官方也支持使用Nacos代替zookeeper。

动态配置服务

动态修改配置并实时生效对于服务端的同学而已并不陌生,这种服务能够让我们的服务拥有更多的灵活性,不需要重启服务即可做到配置实时生效,非常适合于“配置优先”的服务开发。

二、部署nacos【单机模式下运行Nacos】

Nacos支持集群和单机部署两种方式,单机部署适合于开发调试,集群部署使用生产环境。参考文档:https://nacos.io/zh-cn/docs/deployment.html
1、naocs工作目录:/data/server/nacos-server

2、nacos日志目录:/data/server/nacos-server/logs

3、custom配置文件:/data/server/nacos-server/init.d/custom.properties

    [root@localhost nacos]# cat init.d/custom.properties 
    #spring.security.enabled=false
    #management.security=false
    #security.basic.enabled=false
    #nacos.security.ignore.urls=/**
    #management.metrics.export.elastic.host=http://localhost:9200
    # metrics for prometheus
    management.endpoints.web.exposure.include=*
     
    # metrics for elastic search
    #management.metrics.export.elastic.enabled=false
    #management.metrics.export.elastic.host=http://localhost:9200
     
    # metrics for influx
    #management.metrics.export.influx.enabled=false
    #management.metrics.export.influx.db=springboot
    #management.metrics.export.influx.uri=http://localhost:8086
    #management.metrics.export.influx.auto-create-db=true
    #management.metrics.export.influx.consistency=one
    #management.metrics.export.influx.compressed=true

4、变量配置文件:/data/server/nacos-server/env.list

【使用自己的数据库,需要按照nacos提供的msyql脚本进行数据库初始化,脚本可参考:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

    [root@localhost nacos-server]# cat env.list 
    PREFER_HOST_MODE=hostname
    MODE=standalone
    SPRING_DATASOURCE_PLATFORM=mysql
    MYSQL_MASTER_SERVICE_HOST=hahah.mysql.rds.aliyuncs.com
    MYSQL_MASTER_SERVICE_PORT=3306
    MYSQL_MASTER_SERVICE_USER=dev-nacos
    MYSQL_MASTER_SERVICE_PASSWORD=123456
    MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
    MYSQL_SLAVE_SERVICE_HOST=hhhhha.mysql.rds.aliyuncs.com
    MYSQL_SLAVE_SERVICE_PORT=3306

对应参数说明:

namedescriptionoption
MODEcluster模式/standalone模式cluster/standalone default cluster
NACOS_SERVERSnacos cluster地址eg. ip1,ip2,ip3
PREFER_HOST_MODE是否支持hostnamehostname/ip default ip
NACOS_SERVER_PORTnacos服务器端口default 8848
NACOS_SERVER_IP多网卡下的自定义nacos服务器IP 
SPRING_DATASOURCE_PLATFORMstandalone 支持 mysqlmysql / empty default empty
MYSQL_MASTER_SERVICE_HOSTmysql 主节点host 
MYSQL_MASTER_SERVICE_PORTmysql 主节点端口default : 3306
MYSQL_MASTER_SERVICE_DB_NAMEmysql 主节点数据库 
MYSQL_MASTER_SERVICE_USER数据库用户名 
MYSQL_MASTER_SERVICE_PASSWORD数据库密码 
MYSQL_SLAVE_SERVICE_HOSTmysql从节点host 
MYSQL_SLAVE_SERVICE_PORTmysql从节点端口default :3306
MYSQL_DATABASE_NUM数据库数量default :2
JVM_XMS-Xmsdefault :2g
JVM_XMX-Xmxdefault :2g
JVM_XMN-Xmndefault :1g
JVM_MS-XX:MetaspaceSizedefault :128m
JVM_MMS-XX:MaxMetaspaceSizedefault :320m
NACOS_DEBUG开启远程调试y/n default :n
TOMCAT_ACCESSLOG_ENABLEDserver.tomcat.accesslog.enableddefault :false

5、启动容器

    docker run --network=host \
    --restart=always \
    --name dev-nacos \
    --env-file=/data/server/nacos/conf.list \
    -v /data/server/nacos-server/logs:/home/nacos/logs \
    -v /data/server/nacos-server/init.d/custom.properties:/home/nacos/init.d/custom.properties \
    -d nacos/nacos-server

或者直接在启动容器的时候指定对应参数即可:

docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.168.1.33 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e TIME_ZONE='Asia/Shanghai' \
-v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
-p 8848:8848 \
--name nacos1.3.1 \
--restart=always \
nacos/nacos-server:1.3.1

查看日志、8848端口是否起来,打开对应网址:IP:8848/nacos 【默认账号密码都为 nacos】
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值