最近看到Nacos出了Pre-GA版本0.8.0,新增了login/namespace等一些實(shí)用的功能,新增功能如下
- Support Login (default user and password is nacos/nacos)
- Support prometheus
- Naming service support namespace
- Add users/roles tables
恰好最近寫(xiě)畢設(shè)最讓我頭疼的就是如何切換本地環(huán)境和線上環(huán)境,因?yàn)槲业姆?wù)間調(diào)用都是走的 Feign 通過(guò)服務(wù)名來(lái)調(diào)用,這樣當(dāng)我本地起服務(wù)進(jìn)行調(diào)試時(shí)就可能會(huì)調(diào)用到線上的服務(wù),而 namespace 的出現(xiàn)解決了我這個(gè)問(wèn)題。
下面簡(jiǎn)單介紹下多環(huán)境部署的一些操作
-
從 Nacos 新建一個(gè) namespace
namespace 配置項(xiàng)目
用過(guò) Nacos 做配置中心的都會(huì)知道,服務(wù)配置要寫(xiě)在 bootstrap.yml 中,所以我們新建 bootstrap-dev.yml 和 bootstrap-prod.yml 兩個(gè)文件,同時(shí)在 bootstrap.yml 做好配置
# bootstrap.yml
spring:
cloud:
nacos:
config:
server-addr: localhost:8848/nacos
file-extension: yml
shared-dataids: mysql.yml,redis.yml,printlog.yml,es.yml
refreshable-dataids: mysql.yml,redis.yml,es.yml
profiles:
active: prod // 默認(rèn)使用prod線上環(huán)境
application:
name: pf-user
# bootstrap-dev.yml
spring:
cloud:
nacos:
config:
namespace: c248e1c9-f10e-40 # 填寫(xiě)剛才我們新建 namespace 時(shí)生成的 id
discovery:
namespace: c248e1c9-f10e-40
線上環(huán)境因?yàn)槲沂褂玫哪J(rèn) namespace ,所以不需要配置,這里需要注意一個(gè)小問(wèn)題,如果我們使用 0.2.1.RELEASE 的 spring-cloud-starter-alibaba-nacos-discovery 會(huì)發(fā)現(xiàn),discovery的namespace不生效,我從 issue 中發(fā)現(xiàn)了作者提供的解決辦法,引入 0.8.0 的 nacos-client 進(jìn)行覆蓋。
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>0.8.0</version>
</dependency>
-
在 Nacos 中創(chuàng)建配置文件(不要忘記點(diǎn)左上角進(jìn)行 namespace 切換)
config -
本地啟動(dòng)項(xiàng)目(啟動(dòng)前將 Active profiles 設(shè)置為dev)
idea
這時(shí)我們就已經(jīng)完成了多環(huán)境部署的所有步驟,使用起來(lái)還是比較方便的。
夢(mèng)想提供著不竭的動(dòng)力,而現(xiàn)實(shí)卻如沉重大山,但我們?nèi)砸?fù)重前行。


