集群配置

在Nacos的conf目录下有一个cluster.conf.example,可以直接把example扩展名去掉来使用,也可以单独创建一个cluster.conf文件,然后打开将后续要部署的Nacos实例地址配置在这里。
本文以在本地不同端点启动3个Nacos服务端为例,可以如下配置:

  1. //ps:即使这里没有配置nacos启动成功后,会自动写到这个文件
  2. 127.0.0.1:8841
  3. 127.0.0.1:8842
  4. 127.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启动成功

    访问8080出现这个界面
    image.png

    Nacos启动成功

    image.png

    查看Nacos节点列表状态

    image.png