前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker一键极速安装Nacos,并配置数据库!

Docker一键极速安装Nacos,并配置数据库!

作者头像
JavaEdge
发布2024-01-06 10:23:33
2600
发布2024-01-06 10:23:33
举报
文章被收录于专栏:JavaEdgeJavaEdge

1 部署方式

1.1 DockerHub
代码语言:javascript
复制
javaedge@JavaEdgedeMac-mini ~ % docker run --name nacos \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=64m \
-e JVM_MS=64m \
-e JVM_MMS=64m \
-p 8848:8848 \
-d nacos/nacos-server:v2.2.3
a624c64a1a25ad2d15908a67316d53212402c5cd340ad87cbcff0ad22a712388

# 自启动
javaedge@JavaEdgedeMac-mini ~ % docker update nacos --restart=always
nacos
javaedge@JavaEdgedeMac-mini ~ %
1.2 官网
1.2.1 Clone 项目
代码语言:javascript
复制
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
1.2.2 单机模式

Derby:

代码语言:javascript
复制
docker-compose -f example/standalone-derby.yaml up

单机模式的MySQL:

MySQL5.7:

代码语言:javascript
复制
docker-compose -f example/standalone-mysql-5.7.yaml up

MySQL8:

代码语言:javascript
复制
docker-compose -f example/standalone-mysql-8.yaml up
1.2.3 集群模式
代码语言:javascript
复制
docker-compose -f example/cluster-hostname.yaml up 

2 基本操作

服务注册
代码语言:javascript
复制
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
代码语言:javascript
复制
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
发布配置
代码语言:javascript
复制
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
获取配置
代码语言:javascript
复制
  curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

3 常见属性配置

属性名称

描述

选项

MODE

系统启动方式: 集群/单机

cluster/standalone默认 cluster

NACOS_SERVERS

集群地址

p1:port1空格ip2:port2 空格ip3:port3

PREFER_HOST_MODE

支持IP还是域名模式

hostname/ip 默认 ip

NACOS_SERVER_PORT

Nacos 运行端口

默认 8848

NACOS_SERVER_IP

多网卡模式下可以指定IP

SPRING_DATASOURCE_PLATFORM

单机模式下支持MYSQL数据库

mysql / 空 默认:空

MYSQL_SERVICE_HOST

数据库 连接地址

MYSQL_SERVICE_PORT

数据库端口

默认 : 3306

MYSQL_SERVICE_DB_NAME

数据库库名

MYSQL_SERVICE_USER

数据库用户名

MYSQL_SERVICE_PASSWORD

数据库用户密码

MYSQL_SERVICE_DB_PARAM

数据库连接参数

default : characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false

MYSQL_DATABASE_NUM

数据库编号

默认 :1

JVM_XMS

-Xms

默认 :1g

JVM_XMX

-Xmx

默认 :1g

JVM_XMN

-Xmn

默认 :512m

JVM_MS

-XX:MetaspaceSize

默认 :128m

JVM_MMS

-XX:MaxMetaspaceSize

默认 :320m

NACOS_DEBUG

是否开启远程DEBUG

y/n 默认 :n

TOMCAT_ACCESSLOG_ENABLED

server.tomcat.accesslog.enabled

默认 :false

NACOS_AUTH_SYSTEM_TYPE

权限系统类型选择,目前只支持nacos类型

默认 :nacos

NACOS_AUTH_ENABLE

是否开启权限系统

默认 :false

NACOS_AUTH_TOKEN_EXPIRE_SECONDS

token 失效时间

默认 :18000

NACOS_AUTH_TOKEN

token

默认 :SecretKey012345678901234567890123456789012345678901234567890123456789

NACOS_AUTH_CACHE_ENABLE

权限缓存开关 ,开启后权限缓存的更新默认有15秒的延迟

默认 : false

MEMBER_LIST

通过环境变量的方式设置集群地址

例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809

EMBEDDED_STORAGE

是否开启集群嵌入式存储模式

embedded 默认 : none

NACOS_AUTH_CACHE_ENABLE

nacos.core.auth.caching.enabled

default : false

NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE

nacos.core.auth.enable.userAgentAuthWhite

default : false

NACOS_AUTH_IDENTITY_KEY

nacos.core.auth.server.identity.key

default : serverIdentity

NACOS_AUTH_IDENTITY_VALUE

nacos.core.auth.server.identity.value

default : security

NACOS_SECURITY_IGNORE_URLS

nacos.security.ignore.urls

default : /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

4 Nacos + Grafana + Prometheus

参考:Nacos监控指南

Note: grafana创建一个新数据源时,数据源地址必须是 http://prometheus:9090

5 访问Dashboard

localhost:8848/nacos,可见:

默认账户 nacos/nacos:

占用内存很高:

代码语言:javascript
复制
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS
a624c64a1a25   nacos     1.70%     920.2MiB / 7.675GiB   11.71%    76.2kB / 5.08MB   0B / 15.9MB   259
^C%

6 应用集成

引入依赖
代码语言:javascript
复制
<!-- 引入nacos注册中心 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
客户端注册
代码语言:javascript
复制
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

作者简介:魔都国企技术专家兼架构,多家大厂后台研发和架构经验,负责复杂度极高业务系统的模块化、服务化、平台化研发工作。具有丰富带团队经验,深厚人才识别和培养的积累。

参考:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 部署方式
    • 1.1 DockerHub
      • 1.2 官网
        • 1.2.1 Clone 项目
        • 1.2.2 单机模式
        • 1.2.3 集群模式
    • 2 基本操作
      • 服务注册
        • 服务发现
          • 发布配置
            • 获取配置
            • 3 常见属性配置
            • 4 Nacos + Grafana + Prometheus
            • 5 访问Dashboard
            • 6 应用集成
              • 引入依赖
                • 客户端注册
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档