三种部署模式

Nacos支持三种部署模式

1、单机模式:可用于测试和单机使用,生产环境切忌使用单机模式(满足不了高可用)

2、集群模式:可用于生产环境,确保高可用

3、多集群模式:可用于多数据中心场景

单机模式

启动 Nacos Server

Linux:sh startup.sh -m standalone

Windows:cmd startup.cmd -m standalone 或 双击 startup.cmd 启动

关闭 Nacos Server

Linux:sh shutdown.sh

Windows:cmd shutdown.cmd 或 双击 shutdown.cmd 启动

0.7版本之前,Nacos使用的是嵌入式数据库Derby (Apache Derby)来存储数据;0.7版本,增加了对mysql数据源的支持。

Derby数据源

内嵌的数据库,通过命令直接启动即可,无需额外安装。

startup.cmd -m standalone

MySQL数据源

步骤一:安装MySQL数据,版本要求:5.6.5+

步骤二:初始化数据库

创建数据库

create database if not exists nacos default charset utf8 collate utf8_general_ci;

初始化数据库

在nacos server解压目录conf下,找到 nacos-mysql.sql 文件,直接执行,执行完成后,用Navicat客户端查看

步骤三:修改conf/application.properties文件,添加如下信息

## mysql datasource
spring.datasource.platform=mysql db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

注意:spring.datasource.platform=mysql别漏了,要不然还是使用Derby数据库。

步骤四:启动 Nacos Server

启动成功后,我们使用上一篇博客:《Nacos系列:Nacos的Java SDK使用》的案例来验证,运行NacosConfig,观察数据表的内容变化,示例知行后,config_info表和his_config_info表都会有和配置相关的数据,如下图所示:

似乎Nacos的MySQL数据源只存储了配置数据,服务列表和注册的服务实例信息并不会出现在数据表中(通过运行示例中的NacosDiscovery类main()方法,就可以观察到该现象)

集群模式

资源有限,我直接在Windows上模拟部署搭建“伪集群”, 新建一个文件目录NacosCluster,将Nacos Server解压三份到该目录下,分别命名为nasosSlave0、nasosSlave1、nasosSlave2,分配端口:8845、8846、8847

修改nasosSlave0/conf/application.properties,server.port=8845,并添加

## mysql datasource
spring.datasource.platform=mysql db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

这里先使用一个MySQL库演示功能,实际生产上至少要使用主备模式,例如:

db.num=2
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://127.0.0.1:3306/nacos2?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

拷贝nasosSlave0/conf/cluster.conf.example为cluster.conf,修改内容如下:

127.0.0.1:8845
127.0.0.1:8846
127.0.0.1:8847

nasosSlave1、nasosSlave2 和 nasosSlave0 除了端口不同外,其它配置保持一致。

分别启动每台 Nacos Server

startup.cmd -m cluster

注意:在Windows下,这个时候不能再双击startup.cmd启动了,如果这样启动仍然是以单机模式运行,因为在bin/startup.cmd中有下面这段代码:

if not "%2" == "cluster" (
set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m"
set "JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true"
) else (
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof"
set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
)

观察控制台,启动成功后,在控制台可以看到如下信息:

E:\Software\Nacos\nacosCluster\nacosSlave0\bin>startup.cmd -m cluster

         ,--.
,--.'|
,--,: : | Nacos 0.8.0
,`--.'`| ' : ,---. Running in cluster mode
| : : | | ' ,'\ .--.--. Port: 8845
: | \ | : ,--.--. ,---. / / | / / ' Pid: 6568
| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.1.102:8845/nacos/index.html
' ' ;. ;.--. .-. | / / '' | |: :| : ;_
| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
' : | ; .' ," .--.; |' ; :__| : | `----. \
| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
' : | ; : .' \ : : `----' '--'. /
; |.' | , .-./\ \ / `--'---'
'---' `--`---' `----' 2019-02-20 23:06:13,059 INFO The server IP list of Nacos is [127.0.0.1:8845, 127.0.0.1:8846, 127.0.0.1:8847] 2019-02-20 23:06:14,185 INFO Nacos is starting... 2019-02-20 23:06:15,409 INFO Nacos is starting... 2019-02-20 23:06:16,512 INFO Nacos is starting... 2019-02-20 23:06:17,605 INFO Nacos is starting... 2019-02-20 23:06:18,736 INFO Nacos is starting... 2019-02-20 23:06:19,860 INFO Nacos is starting... 2019-02-20 23:06:21,021 INFO Nacos is starting... 2019-02-20 23:06:22,230 INFO Nacos is starting... 2019-02-20 23:06:23,390 INFO Nacos is starting... 2019-02-20 23:06:24,605 INFO Nacos is starting... 2019-02-20 23:06:25,991 INFO Nacos is starting... 2019-02-20 23:06:26,993 INFO Nacos is starting... 2019-02-20 23:06:28,197 INFO Nacos is starting... 2019-02-20 23:06:29,264 INFO Nacos is starting... 2019-02-20 23:06:30,515 INFO Nacos is starting... 2019-02-20 23:06:31,810 INFO Nacos is starting... 2019-02-20 23:06:32,934 INFO Nacos is starting... 2019-02-20 23:06:33,976 INFO Nacos is starting... 2019-02-20 23:06:35,044 INFO Nacos is starting... 2019-02-20 23:06:36,153 INFO Nacos is starting... 2019-02-20 23:06:37,290 INFO Nacos is starting... 2019-02-20 23:06:38,616 INFO Nacos is starting... 2019-02-20 23:06:39,736 INFO Nacos is starting... 2019-02-20 23:06:40,824 INFO Nacos is starting... 2019-02-20 23:06:41,757 INFO Nacos Log files: E:\Software\Nacos\nacosCluster\nacosSlave0\/logs/ 2019-02-20 23:06:41,768 INFO Nacos Conf files: E:\Software\Nacos\nacosCluster\nacosSlave0\/conf/ 2019-02-20 23:06:41,771 INFO Nacos Data files: E:\Software\Nacos\nacosCluster\nacosSlave0\/data/ 2019-02-20 23:06:41,774 INFO Nacos started successfully in cluster mode.

在浏览器分别访问如下路径

http://localhost:8845/nacos

http://localhost:8846/nacos

http://localhost:8847/nacos

如果都能访问成功,证明集群模式部署成功。

多集群模式

Nacos支持NameServer路由请求模式,通过它您可以设计一个有用的映射规则来控制请求转发到相应的集群,在映射规则中您可以按命名空间或租户等分片请求(From Nacos官网)

其他说明

Nacos官方宣称,Nacos v0.8.0 Pre-GA版本已经可以用于生产环境,在此之前的版本,请勿在生产上使用。

参考资料

推荐阅读

Nacos系列:Nacos的三种部署模式的更多相关文章

  1. tomcat-四种运行模式和三种部署模式(优化)

    四中运行模式如下: 1-bio: 传统的Java I/O操作,同步且阻塞IO. 2-nio: JDK1.4开始支持,同步阻塞或同步非阻塞IO 3-aio(nio.2): JDK7开始支持,异步非阻塞I ...

  2. Intel系列微处理器的三种工作模式

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?

    一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...

  4. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  5. Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)

    一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud  分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...

  6. ubuntu上Hadoop三种运行模式的部署

    Hadoop集群支持三种运行模式:单机模式.伪分布式模式,全分布式模式,下面介绍下在Ubuntu下的部署 (1)单机模式 默认情况下,Hadoop被配置成一个以非分布式模式运行的独立JAVA进程,适合 ...

  7. hadoop记录-[Flink]Flink三种运行模式安装部署以及实现WordCount(转载)

    [Flink]Flink三种运行模式安装部署以及实现WordCount 前言 Flink三种运行方式:Local.Standalone.On Yarn.成功部署后分别用Scala和Java实现word ...

  8. IIS在ASP.NET Core下的两种部署模式

    KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择.ASP.NET CORE应用针对IIS具有两种部署模 ...

  9. 云计算的三种服务模式:SaaS/PaaS/IaaS

    转载http://blog.chinaunix.net/uid-22414998-id-3141499.html 定义 云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的: S ...

随机推荐

  1. [Java源码解析] -- String类的compareTo(String otherString)方法的源码解析

    String类下的compareTo(String otherString)方法的源码解析 一. 前言 近日研究了一下String类的一些方法, 通过查看源码, 对一些常用的方法也有了更透彻的认识,  ...

  2. 在windows上传一个新的项目到GitHub上

    不多说,直接上步骤 1,新建GitHub的账号密码. 2,新建一个项目  点击new repository 3,选择自己项目,填写格式 点击创建  create  repository,这时候一个雏形 ...

  3. navicat连接mysql出现2059错误

    最近在学习django的时候需要用到数据库,于是便下载了navicat准备和mysql配套使用,但是在连接的时候确出现了如下问题: 网上查询过后,发现这个错误出现的原因是在mysql8之前的版本中加密 ...

  4. 【adb】执行adb devices 设备offline

    解决办法: 1.执行adb kill-server,在执行adb devices 2.重启手机 ---------------------------------------------------- ...

  5. Android开发者的Anko使用指南(三)之资源

    添加依赖 dependencies { compile "org.jetbrains.anko:anko-commons:$anko_version" } Color 0xff00 ...

  6. springcloud config 提取公共参数

    每个微服务都有自己的配置文件application-local.yml和bootstrap.yml, 这个两个配置文件的读取顺序是先读取bootstrap.yml文件,在读取application-l ...

  7. ssh框架 基本整合

    struts的基本配置 <struts> <constant name="struts.devModel" value="true" /> ...

  8. 【高速接口-RapidIO】1、RapidIO协议概述

    一.RapidIO背景介绍 RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放 ...

  9. Maven整合SSM测试

    前面也说到了关于SSM的整合,话不多说直接从创建项目开始CRUD之路(参考前面写过的Mybatis和Spring整合,SSM简单整合),这是整个项目的结构 以及最终的结果.(附上下载地址) 一.创建M ...

  10. mysql5.5 五种日期

    mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...