Spring Cloud
存在Spring Cloud1.x和Spring Cloud2.x
版本,目前主流使用2.x版本,由於服務註冊組件eureka
的中止維護,因此目前不少公司都開始使用其餘的替代方案,而阿里系的Spring-Cloud-Alibaba
成了微服務生態一個主流解決方案。目前我所在公司也準備使用阿里這套方案進行微服務開發。本文主要介紹服務註冊中心nacos
的使用入門html
Nacos
致力於幫助您發現、配置和管理微服務。Nacos
提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
Nacos
主要特性(目前我使用到的):
linux
application.yml
中的屬性,利用此特性咱們能夠動態配置Spring Cloud Gateway動態路由。startup.cmd
、shutdown.cmd
sh startup.sh -m standalone
、sh shutdown.sh
http://ip:port/nacos
,打開nacos
後臺主頁說明安裝成功spring-cloud-starter-alibaba-nacos-discovery
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
複製代碼
在啓動類加上註解@EnableDiscoveryClient
spring
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
複製代碼
配置application.yml
文件bootstrap
spring:
application:
name: service-provider
cloud:
nacos:
discovery:
server-addr: 10.0.0.205:8848
server:
port: 9005
feign:
sentinel:
enabled: true
複製代碼
配置結束,啓動provider,查看nacos管理後臺查看服務是否註冊成功(被檢測到)bash
Spring Cloud Alibaba Nacos Config
是 Spring Cloud Config Server
和 Client
的替代方案,客戶端和服務器上的概念與 Spring Environment 和 PropertySource
有着一致的抽象,在特殊的bootstrap
階段,配置被加載到Spring
環境中。當應用程序經過部署管道從開發到測試再到生產時,您能夠管理這些環境之間的配置,並確保應用程序具備遷移時須要運行的全部內容Nacos
後臺去修改微服務配置文件或者在此處來寫,無需重啓項目。咱們以provider爲例來檢測Nacos
服務配置的強大功能。nanshen.name
的值爲例 一、服務端初始化
在Nacos配置管理列表裏添加一個服務配置:服務器
配置好之後點擊發布便可!
二、客戶端初始化
由於咱們已經把服務配置放到Nacos上進行動態管理,因此咱們就不須要在服務中去維護配置文件application.yml了,咱們能夠把它刪除掉,可是存在一個問題,個人微服務怎麼去發現Nacos中的配置呢,因此此時咱們仍然須要一個bootstrap.properties配置文件用於識別Nacos中所在服務器中的配置文件。網絡
ConfigurableApplicationContext
類,不能使用
@Value
註解讀取,由於
@Value
爲一次性讀取,讀取一次後會把數據存到內存,不會再去讀取配置環境中的值,因此若是要實現動態配置的話就不能使用
@Value
註解。
@RestController
public class TestController {
@Autowired
private ConfigurableApplicationContext configurableApplicationContext;
@GetMapping("/get_name")
public String getNanShenName(){
String username=configurableApplicationContext.getEnvironment().getProperty("user.name");
return username;
}
}
複製代碼
測試動態配置:在Nacos對應的配置文件中修改user.name值爲nanshen,而後發佈,能夠在微服務後臺日誌看到user.name值被修改。
如圖能夠看到實現了動態修改配置文件功能,此功能對於網關動態路由技術有很是大的意義。app
示例源碼更新中...ide