关于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. 【leetcode】756. Pyramid Transition Matrix

    题目如下: We are stacking blocks to form a pyramid. Each block has a color which is a one letter string, ...

  2. centos 安装mysql冲突解决方法

    [root@centos-50 servers]# rpm -ivh mysql-server-5.5.33-1.linux2.6.x86_64.rpm Preparing... ########## ...

  3. CF1061E Politics E. Politics 解题报告

    CF1061E Politics E. Politics 考虑利用树的性质,因为是子树问题,所以放到dfs序上. 只考虑一个树,问题是每个区间选恰好\(k\)个.因为区间其实是子树,所以区间要么包含, ...

  4. centos下安装java jdk1.8

    ---恢复内容开始--- mysql密码修改了,发现还没装jdk,那就一起记录下来吧.虽然网上好多,但自己想查更方便了. 查看有没有装jdk #java -version显示下面信息,不是oracle ...

  5. 初学Linux基本的命令操作应当记牢

    Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touc ...

  6. mysql性能查看 命中率 慢查询

    网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一 ...

  7. webpack 导出、导入模块(及路径)

    参考:https://blog.csdn.net/xyphf/article/details/83411552 (下面的代码亲测有效) 注:导入的模块的方法,只有两种方法  import 和 requ ...

  8. [NOIP模拟26]题解

    今天的考试题改自闭了……所以滚来写陈年题解. A.*****贪婪***** RT,出题人告诉我们这题要贪心. 最优的策略一定是拖到必须断的时候再断开(虽然并不知道为什么). 如果一段序列满足题目中的性 ...

  9. ARM 是什么

    ARM Advanced RISC Machines. RISC 就是reduced instruction set computer 精简指令集计算机DSP digtal signal Proces ...

  10. selenium.Cookie 转 okhttp3.Cookie

    package org.rx.util; import lombok.SneakyThrows; import okhttp3.HttpUrl; import org.openqa.selenium. ...