nacos系列 (nacos整合springboot)


1.1 介紹

一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平台。

Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平台。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務范式、雲原生范式) 的服務基礎設施。

其他相關產品 consul 等也要服務注冊和管理的功能

官網: https://nacos.io/zh-cn/

Nacos 的關鍵特性:
   1. 服務發現和服務健康監測
   2. 動態配置服務
   3. 動態 DNS 服務
   4. 服務及其元數據管理
......

1.2 nacos生態

1.3 安裝

推薦的穩定版本為1.4.2或2.0.1。

1.3.1 下載

准備工作:
1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac。
2. 64 bit JDK 1.8+;
3. Maven 3.2.x+;

github下載地址:https://github.com/alibaba/nacos.git

本次以1.3.2為例進行介紹,大家盡量選擇穩定版本

bin : 命令夾

conf: 配置文件夾

data: 輔助數據文件夾

logs : 日志文件夾

target: 編譯文件夾

1.3.2 啟動

nacos有兩種啟動方式

  1. 單節點啟動
  2. 集群啟動 (修改以下兩個文件)
    1. conf/cluster.conf
    2. conf/application.properties
  1. 修改配置文件
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
 spring.datasource.platform=mysql

### Count of DB:
 db.num=1

### Connect URL of DB:
 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos-conf?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
 db.user=root
 db.password=root
  1. 數據庫文件導入
把conf文件夾下的mysql文件導入到創建好的數據庫中,與步驟1的鏈接數據庫保持一致
  1. nacos啟動

Linux/Unix/Mac

啟動命令(standalone代表着單機模式運行,非集群模式):

sh startup.sh -m standalone

ubuntu

bash startup.sh -m standalone

Windows

啟動命令(standalone代表着單機模式運行,非集群模式):

startup.cmd -m standalone

1.3.3 web頁面訪問

默認用戶名密碼 是 nacos/nacos

訪問地址:http://localhost:8848/nacos

----到這nacos就搭建完成了

1.4 web頁面

下面主要介紹nacos的web頁面

2. nacos集成

2.1 springboot集成

# 注意:  版本 0.2.x.RELEASE 對應的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 對應的是 Spring Boot 1.x 版本。

項目初始化搭建,引入jar包

  <!--引入nacos配置包  讀取nacos上配置文件需要這個包-->   
 <dependency>
     <groupId>com.alibaba.boot</groupId>
     <artifactId>nacos-config-spring-boot-starter</artifactId>
     <version>0.2.1</version>
 </dependency>
 
 <!--引入nacos服務注冊包-->
 <dependency>
     <groupId>com.alibaba.boot</groupId>
     <artifactId>nacos-discovery-spring-boot-starter</artifactId>
     <version>0.2.1</version>
 </dependency>
 <!--引入nacos-client包  個別需要加  不加會報nacos  api的錯-->
 <dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>0.6.2</version>
</dependency>
ps: 注意  nacos-client的版本與上面nacos-config的有個對應關系

初始化項目

@SpringBootApplication
public class CloudNacosApplication {
    @NacosInjected
    private NamingService namingService;

    @Value("${server.port}")
    private int serverPort;

    @Value("${spring.application.name}")
    private String applicationName;

    // 現在采用原生的nacos+springboot  需要自己手動注冊到nacos上  后期可以使用ali的nacos包,使用注解@EnableDiscoveryClient
    @PostConstruct
    public void registerInstance() throws NacosException {
        namingService.registerInstance(applicationName, "127.0.0.1", serverPort);
    }

    public static void main(String[] args) {
        SpringApplication.run(CloudNacosApplication.class, args);
    }

}
# 服務注冊名  單例名稱  唯一
spring:
  application:
    name: cloud-nacos
# 端口
server:
  port: 8080
# 服務注冊地址   nacos地址
nacos:
  discovery:
    server-addr: 127.0.0.1:8848
  config:
    server-addr: 127.0.0.1:8848

注冊服務,啟動項目去nacos上查看服務已經注冊

image-20210521105000550

讀取配置文件 測試類如下,nacos配置文件如下

@RestController
@NacosPropertySource(dataId = "huhy-dev",autoRefreshed = true)
public class NacosConfiigController {

    @NacosValue(value = "${huhy.username:yang}",autoRefreshed = true)
    private String username;

    /**
     * 測試nacosvalue獲取配置文件屬性
     * @return
     */
    @GetMapping("/getUsername")
    public String getUserName(){
        return "hello "+ username;
    }
}

image-20210521105157578

接口測試

image-20210521105217268

## 注意   先了解,后期介紹nacos+springcloud的時候詳細解析
1. @NacosValue  和 @Value的注解區別
2. @RefreshScope


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM