集群配置
在Nacos的conf目录下有一个cluster.conf.example,可以直接把example扩展名去掉来使用,也可以单独创建一个cluster.conf文件,然后打开将后续要部署的Nacos实例地址配置在这里。
本文以在本地不同端点启动3个Nacos服务端为例,可以如下配置:
//ps:即使这里没有配置nacos启动成功后,会自动写到这个文件127.0.0.1:8841127.0.0.1:8842127.0.0.1:8843
本地测试
本文中,在集群配置的时候,我们设定了3个Nacos的实例都在本地,只是以不同的端口区分,所以我们在启动Nacos的时候,需要修改不同的端口号。
下面介绍一种方法来方便地启动Nacos的三个本地实例,我们可以将bin目录下的startup.cmd脚本复制三份,分别用来启动三个不同端口的Nacos实例,为了可以方便区分不同实例的启动脚本,我们可以把端口号加入到脚本的命名中。
(注意,若启动第一个成功,后面失败报
Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat异常,把nacos文件夹复制三份,分别启动即可)
比如:
- startup-8841.cmd
- startup-8842.cmd
startup-8843.cmd
//cmd版本 set "NACOS_OPTS=-Dserver.port=8841" //sh版本 JAVA_OPT="${JAVA_OPT} -Dserver.port=8841"Nginx简单命令
start nginx 启动nginx nginx -s stop 关闭直接退出 nginx -s quit 关闭有序退出(保存日志信息) nginx -s reload 改了配置需要重启 //如果打开了多个nginx,关闭时可能出现关不掉的问题 netstat -ano | findstr 8080 查看端口占用 tasklist | findstr pid 查看相关pid进程信息 taskkill /f /t /im nginx.exe 杀死所有nginx进程Proxy配置
在Nacos的集群启动完毕之后,根据架构图所示,我们还需要提供一个统一的入口给我们用来维护以及给Spring Cloud应用访问。简单地说,就是我们需要为上面启动的的三个Nacos实例做一个可以为它们实现负载均衡的访问点。这个实现的方式非常多,这里就举个用Nginx来实现的简单例子吧。
在Nginx配置文件的http段中,我们可以加入下面的配置内容upstream nacosserver { server 127.0.0.1:8841; server 127.0.0.1:8842; server 127.0.0.1:8843; } server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location /nacos/ { proxy_pass http://nacosserver/nacos/; }这样,当我们访问:http://localhost:8080/nacos/的时候,就会被负载均衡的代理到之前我们启动的三个Nacos实例上了。这里我们没有配置upstream的具体策略,默认会使用线性轮训的方式。
nginx启动成功
Nacos启动成功
查看Nacos节点列表状态

