Nacos是阿里雲開源服務,下面兩句話是Nacos官方解釋什麼是Nacos。html
Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。java
Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以「服務」爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。node
工做目錄 /appmysql
3臺機器需安裝配置 64 bit JDK 1.8+ --> 下載地址
nginx
Nacos 截至目前最新版本爲1.0.0 --> 下載地址 下載後解壓到/app
git
單機啓動以A虛擬機作示例github
單機啓動不須要什麼配置,只須要JDK1.8+支持,數據庫由內置數據庫進行存儲,也能夠使用MySQL數據庫。默認啓動端口爲8848,若是須要修改端口,修改conf/application.properties 中的server.port項。sql
sh startup.sh -m standalone
瀏覽器訪問192.168.2.10:8848/nacos/數據庫
默認帳戶和密碼爲 nacos瀏覽器
1:JDK1.8+
2:3個或3個以上Nacos節點才能構成集羣。
3:MySQL數據庫,目前只支持MySQL,集羣不能使用內置數據庫。
4:拓撲圖
1:將conf下cluster.conf.example複製一份爲cluster.conf
[root@node1 conf]# cp cluster.conf.example cluster.conf
2:將三個節點添加到集羣配置文件cluster.conf。
[root@node1 conf]# cat cluster.conf #it is ip #example 192.168.2.10:8848 192.168.2.11:8848 192.168.2.12:8848
3:將下面數據庫配置添加到conf/application.properties。
db.num=1 db.url.0=jdbc:mysql://192.168.2.12:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.database=nacos_config db.user=root db.password=password
4:將上面3個步驟分別在A,B,C機器上重複執行。
5:數據庫配置。(虛擬機C)
安裝好MySQL數據庫後,建立一個nacos庫。而後導入nacos初始化sql,sql在 /app/nacos/conf/nacos-mysql.sql
建立用戶並受權nacos庫給建立用戶,本實例已root用戶爲例。
6:啓動A,B,C 三個節點的Nacos。
[root@node1 ~]# cd /app/nacos/ [root@node1 nacos]# /app/nacos/bin/startup.sh
啓動日誌放在 /app/nacos/logs/start.out,查看是否啓動成功。
7:訪問
1:nginx下載並解壓到/app,並添加配置。(A,B虛擬機都配置。)
upstream nacos-server{ server 192.168.2.10:8848; server 192.168.2.11:8848; server 192.168.2.12:8848; } location /nacos/ { proxy_pass http://nacos-server/nacos/; }
2:安裝keepalived,並做相應配置。(A:主,B:備)VIP:192.168.2.111
keepalived配置:A(主)
[root@node1 conf]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@test.com } notification_email_from admin@test.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/home/scripts/monitor_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface ens192 virtual_router_id 50 mcast_src_ip 192.168.2.10 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.111 } }
keepalived配置:B(備)
[root@node2 nacos]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@test.com } notification_email_from admin@test.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/home/scripts/monitor_nginx.sh" interval 2 weight 2 } vrrp_instance VI_2 { state BACKUP interface ens192 virtual_router_id 50 mcast_src_ip 192.168.2.11 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.111 } }
3:啓動nginx和keepalived(A,B)
[root@node1 conf]# /app/nginx/sbin/nginx [root@node1 conf]# systemctl start keepalived
4:經過VIP訪問Nacos