关于Nacos已经展开了四篇入门文章:

初探Nacos(一)-- 单机模式启动

初探Nacos(二)-- SpringCloud使用Nacos的服务注册与发现

初探Nacos(三)-- SpringBoot下整合Dubbo和Nacos

初探Nacos(四)-- SpringBoot下使用Nacos作为配置中心

今天,我们开始进一步探索Nacos的使用,分布式集群模式部署Nacos。(另外,目前的Nacos1.0.0稳定版已发布,目前测试暂没有发现问题,我们重新使用1.0.0来演示。)

当然,我们仍然参考官方文档:集群部署说明,由于集群模式需要用到数据库,此处我们默认你已安装好Mysql数据库, 然后我们到https://github.com/alibaba/nacos/releases下载最新的安装包。

wget https://github.com/alibaba/nacos/releases/download/1.0.0/nacos-server-1.0.0.zip
复制代码

unzip nacos-server-1.0.0.zip

cd nacos

cp conf/cluster.conf.example conf/cluster.conf

需要配置3个或3个以上节点,生产环境建议分布在多台服务器上,目前咱们仅在一台机器上测试。

vi conf/cluster.conf

127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
复制代码

然后进入mysql,创建名为nacos_config的数据库 ,导入config/nacos-mysql.sql。(此处测试暂时使用单机数据库,建议生产环境采用主从等高可模式)

建完数据库完后,官方文档上默认使用的是内嵌的cmdb数据库,没有Mysql数据库的配置,有点让人懵逼的,百度了一下,找到了配置。

vi conf/application.properties

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=数据库用户名
db.password=数据密码
复制代码

另外,由于我们在一台机器上跑三个,因此启动脚本和关闭脚本需要做一点修改。

cp bin/startup.sh bin/startup-port.sh

vi bin/startup-port.sh

export MODE="cluster"
export FUNCTION_MODE="all"
export SERVER_PORT="8848"
while getopts ":m:f:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
p)
SERVER_PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
JAVA_OPT="${JAVA_OPT} -Dserver.port=${SERVER_PORT}"
复制代码

cp bin/shutdown.sh bin/shutdown-port.sh

vi bin/shutdown-port.sh

PORT=$1
if [ ! $PORT ]; then
echo "please select stop port!" >&2
exit 1
fi pid=`ps ax | grep -i 'nacos.nacos' |grep java |grep ${PORT} | grep -v grep | awk '{print $1}'`
复制代码

启动方式如下:

sh bin/startup-port.sh -p 8848

sh bin/startup-port.sh -p 8849

sh bin/startup-port.sh -p 8850

关闭方式如下:

sh bin/shutdown-port.sh 8848

sh bin/shutdown-port.sh 8849

sh bin/shutdown-port.sh 8850

启动后就可以在浏览器打开 http://127.0.0.1:8848/nacos/,http://127.0.0.1:8849/nacos/,http://127.0.0.1:8850/nacos/ 即可看到控制台,默认用户名/密码为nacos/nacos。

附1: 可通过Nginx配置只访问一个地址负载均衡到三个节点上:

upstream nacos-cluster{
server 127.0.0.1:8848;
server 127.0.0.1:8849;
server 127.0.0.1:8850;
}
复制代码

附2:集群模式下控制台的用户名密码都存在了数据库的users表,用户名直接修改就行,密码需要用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder加密。

然后我们就可以在演示项目里尝试,只需在application.properties里将配置由单机模式改成集群模式:

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
复制代码

配置中心的配置需要修改如下:

nacos.config.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
复制代码

dubbo的配置需要修改如下:

dubbo.registry.address=nacos://127.0.0.1:8848?backup=127.0.0.1:8849,127.0.0.1:8850
复制代码

启动项目后,可以测试到服务注册与发现、配置中心等均能像单机模式一样正常使用。我们可以尝试关闭其中一个或两个nacos,仍然不影响系统的正常运行。

转自:https://juejin.im/post/5cbad19ef265da038b20165e

【Nacos】本地集群部署的更多相关文章

  1. mtools 是由MongoDB 官方工程师实现的一套工具集,可以很快速的日志查询分析、统计功能,此外还支持本地集群部署管理.

    mtools 是由MongoDB 官方工程师实现的一套工具集,可以很快速的日志查询分析.统计功能,此外还支持本地集群部署管理 https://www.cnblogs.com/littleatp/p/9 ...

  2. Spring Cloud Alibaba基础教程:Nacos的集群部署

    继续说说生产环境的Nacos搭建,通过上一篇<Spring Cloud Alibaba基础教程:Nacos的数据持久化>的介绍,我们已经知道Nacos对配置信息的存储原理,在集群搭建的时候 ...

  3. Nacos Docker集群部署

    参考文档:https://nacos.io/zh-cn/docs/quick-start-docker.html 1.从git上下载nacos-docker项目,本地目录为/docksoft/naco ...

  4. Nacos(九):Nacos集群部署和遇到的问题

    前言 前面的系列文章已经介绍了Nacos的如何接入SpringCloud,以及Nacos的基本使用方式 之前的文章中都是基于单机模式部署进行讲解的,本文对Nacos的集群部署方式进行说明 环境准备 J ...

  5. nacos集群部署

    对于nacos的集群部署,建议大家参考nacos官网进行,地址:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 下面是我自己部署na ...

  6. Alibaba Nacos 服务发现组件集群部署

    前面学习了单机模式下的启动,生产环境中部署nacos肯定是使用集群模式cluster保证高可用. 官方文档的集群部署推荐使用VIP+域名模式,把所有服务列表放到一个vip下面,然后挂到一个域名下面. ...

  7. Spring Eureka 本地Docker集群部署

    故事背景 最近因为产线使用的服务与发现服务,使用的是Spring Cloud Eureka集群部署,为了以后调试产线的问题,想在本地搭建和产线一样的环境.产线的所有服务都是基于K8s和Docker部署 ...

  8. 为Kubernetes集群部署本地镜像仓库

    目录贴:Kubernetes学习系列 经过之前两篇文章:Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard,我们基本上已经能够在k8s的集群上部署一个应用了 ...

  9. Spring Cloud Alibaba | Nacos集群部署

    目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...

随机推荐

  1. 【JavaWeb项目】一个众筹网站的开发(三)第一个网页

    一.bootstrap 本项目采用bootstrap3 bootstrap中文网 https://www.bootcss.com/ 使用bootstrap三步: 1.导入jQuery 2.导入boot ...

  2. 页面重置样式reset.css

    我把经常用到的一些页面重置样式归类到了一个.css文件中,这样可以减少代码冗余.当然还有其他的很多用处,比如h1~h5的样式全部统一的话,下面写东西很清晰很多. @charset 'utf-8'; h ...

  3. Eu

    <parent> <artifactId>microservice-cloud-01</artifactId>   <groupId>com.mengx ...

  4. Service系统服务(四):搭建单区域DNS服务器、特殊DNS解析、配置DNS子域授权、搭建并测试缓存DNS

    一.搭建单区域DNS服务器 目标: 本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站.测试阶段主要提供以下正向记录: svr7.tedu.cn ---> ...

  5. $router和router区别

    this.$router.push({path:'/'})//这个是js编程式的一种动态跳转路由方式,是全局的路由对象. 而写在router声明文件中的router是自己定义实例化的一个对象.可以使用 ...

  6. Redis入门很简单之四【初识Jedis】

    Redis入门很简单之四[初识Jedis] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存jedis  使用Jedis提供的Java API对Redis进行操作,是Red ...

  7. windows系统查看端口占用

    netstat -ano #列出所用端口使用情况 netstat -aon|findstr "端口号"  #查询指定端口 tasklist|findstr "PID&qu ...

  8. mybatis中Parameter index out of range (2 > number of parameters, which is 1).

    ${name} 是不带单引号的,而#{name} 是带单引号的

  9. 数字三角形 (DP入门)

    7 3     8 8     1     0 2     7     4     4  4     5     2     6     5 给出一个数字三角形.从三角形的顶部到底部有很多条不同的路径 ...

  10. JavaBean详解

    JavaBean详解 我们对JavaBean的理解可以从java和bean两个方面来理解,对于Java我们都很清楚,而bean在计算机中的含义为可重用组件.(ps:对Spring中的bean是不是有了 ...