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

对应参数说明:

name description option
MODE cluster模式/standalone模式 cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
PREFER_HOST_MODE 是否支持hostname hostname/ip default ip
NACOS_SERVER_PORT nacos服务器端口 default 8848
NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP  
SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty
MYSQL_MASTER_SERVICE_HOST mysql 主节点host  
MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 default : 3306
MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库  
MYSQL_MASTER_SERVICE_USER 数据库用户名  
MYSQL_MASTER_SERVICE_PASSWORD 数据库密码  
MYSQL_SLAVE_SERVICE_HOST mysql从节点host  
MYSQL_SLAVE_SERVICE_PORT mysql从节点端口 default :3306
MYSQL_DATABASE_NUM 数据库数量 default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g
JVM_XMN -Xmn default :1g
JVM_MS -XX:MetaspaceSize default :128m
JVM_MMS -XX:MaxMetaspaceSize default :320m
NACOS_DEBUG 开启远程调试 y/n default :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled default :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

 

查看日志、8848端口是否起来,打开对应网址:IP:8848/nacos   【默认账号密码都为 nacos】

 

Docker部署nacos【单机】_第1张图片

 

 

 

你可能感兴趣的:(docker,nacos)