什么是 Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

nacos是ali开源的微服务注册中心,其实也是配置中心,详细说明参见:https://nacos.io/zh-cn/docs/what-is-nacos.html。

一  nacos下载,当前最稳定版本。

源码下载地址:https://github.com/alibaba/nacos/releases

百度云提取地址:(安排)

链接:https://pan.baidu.com/s/1Nbdq54w6_FZanSj5sICD1w
提取码:1122

由于nacos是用java开发的,运行时需要JRE环境,配置JDK略。

二  使用mysql 作为注册中心的数据持久化

下载好nacos server后,解压可以发现文件目录如下:

Spring Cloud Alibaba之nacos 集群搭建_nginx

 

 

这里我们使用mysql做为nacos数据持久化的数据源。

创建nacos集群使用的mysql数据库

Spring Cloud Alibaba之nacos 集群搭建_html_02

 

三  集群配置

由于我们是要使用集群的方式来使用nacos,注意:nacos是默认以集群的方式启动的。

1  修改  /conf/application.properties

Spring Cloud Alibaba之nacos 集群搭建_nginx_03

 

 

2 添加集群配置  在你需要启动的nacos的conf/ 添加  cluster.conf  将需要启动的节点的信息添加进来,ip:port的方式或者域名的方式也可

Spring Cloud Alibaba之nacos 集群搭建_微服务_04

3 修改节点启动的环境变量。

通过查看启动脚本发现,cluster 方式启动时,nacos占用的内存为  2g,可以修改得比较小一些,方便测试。这里修改为跟standalone 一样的配置启动。方便测试。

Spring Cloud Alibaba之nacos 集群搭建_nginx_05

 

 

 centos启动方式:

在终端执行  :  到/bin目录下,分别启动nacos_1/nacos_2/nacos_3 服务,直接执行 ./startup.sh  

windows启动方式:

Spring Cloud Alibaba之nacos 集群搭建_nginx_06

四  集群的正确使用方式

1 访问nacos后台查看。

Spring Cloud Alibaba之nacos 集群搭建_spring_07

 

 

 

Spring Cloud Alibaba之nacos 集群搭建_nginx_08

 

 

 

2  cloud微服务项目连接Nacos集群

##指定当前服务端口号
#server:
# port: 10020
spring:
application:
#指定当前服务名字
name: app-login
cloud:
nacos:
#连接Nacos集群
server-addr: 127.0.0.1:8818,127.0.0.1:8828,127.0.0.1:8838
# discovery:
# # nacos服务端位置(注册中心服务端地址的实际使用)
# server-addr: ${spring.cloud.nacos.server-addr}
config:
# server-addr: ${spring.cloud.nacos.server-addr}
file-extension: yml

 这种方式最大的问题是,当注册中心有新的节点上线后,修改起来很麻烦,所以可以使用nginx 做负载均衡,方便后续节点的扩展。

3.使用nginx做为前置负载均衡来连接nacos 集群

nginx的配置为:

 1 server {
 2     listen       80;
 3     listen  [::]:80;
 4     server_name  localhost;
 5     location / {
 6         root   /usr/share/nginx/html;
 7         index  index.html index.htm;
 8     }
 9 
10     error_page   500 502 503 504  /50x.html;
11     location = /50x.html {
12         root   /usr/share/nginx/html;
13     }
14 
15 }
16 upstream cluster{
17     server 127.0.0.1:8818;
18     server 127.0.0.1:8828;
19     server 127.0.0.1:8838;
20 }
21 
22 server {
23     listen      8848;
24     server_name  localhost;
25     #charset koi8-r;
26 
27     #access_log  logs/host.access.log  main;
28 
29     location / {
30     # root   html;
31     # index  index.html index.htm;
32     proxy_pass http://cluster;
33     }
34 }

这时springcloud 的连接配置可以直接更改为:

 1 ##指定当前服务端口号
 2 #server:
 3 #  port: 10020
 4 spring:
 5   application:
 6     #指定当前服务名字
 7     name: app-name
 8   cloud:
 9     nacos:
10       #更改为nginx端口
11       server-addr: 127.0.0.1:8848
12       config:
13         file-extension: yml

 

半斤八两开始写BLOG了