1. 程式人生 > 其它 >Spring Cloud Alibaba之nacos 叢集搭建

Spring Cloud Alibaba之nacos 叢集搭建

什麼是 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後,解壓可以發現檔案目錄如下:

這裡我們使用mysql做為nacos資料持久化的資料來源。

建立nacos叢集使用的mysql資料庫

三 叢集配置

由於我們是要使用叢集的方式來使用nacos,注意:nacos是預設以叢集的方式啟動的。

1 修改 /conf/application.properties

2 新增叢集配置 在你需要啟動的nacos的conf/ 新增 cluster.conf 將需要啟動的節點的資訊新增進來,ip:port的方式或者域名的方式也可

3 修改節點啟動的環境變數。

通過檢視啟動指令碼發現,cluster 方式啟動時,nacos佔用的記憶體為 2g,可以修改得比較小一些,方便測試。這裡修改為跟standalone 一樣的配置啟動。方便測試。

centos啟動方式:

在終端執行 :到/bin目錄下,分別啟動nacos_1/nacos_2/nacos_3 服務,直接執行./startup.sh

windows啟動方式:

四 叢集的正確使用方式

1 訪問nacos後臺檢視。

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了