1. 程式人生 > >SpringBoot2 整合Nacos元件,環境搭建和入門案例詳解

SpringBoot2 整合Nacos元件,環境搭建和入門案例詳解

本文原始碼:GitHub·點這裡 || GitEE·點這裡

一、Nacos基礎簡介

1、概念簡介

Nacos 是構建以“服務”為中心的現代應用架構,如微服務正規化、雲原生正規化等服務基礎設施。聚焦於發現、配置和管理微服務。Nacos提供一組簡單易用的特性集,幫助開發者快速實現動態服務發現、服務配置、服務元資料及流量管理。敏捷構建、交付和管理微服務平臺。

2、關鍵特性

  • 動態配置服務
  • 服務發現和服務健康監測
  • 動態 DNS 服務
  • 服務及其元資料管理

3、專業術語解釋

  • 名稱空間

用於進行租戶粒度的配置隔離。不同的名稱空間下,可以存在相同的 Group 或 Data ID 的配置。

  • 配置集

一組相關或者不相關的配置項的集合稱為配置集。在系統中,一個配置檔案通常就是一個配置集,包含了系統各個方面的配置。

  • 配置集 ID

Nacos 中的某個配置集的ID。配置集ID是組織劃分配置的維度之一。DataID通常用於組織劃分系統的配置集。

  • 配置分組

Nacos 中的一組配置集,是組織配置的維度之一。通過一個有意義的字串對配置集進行(Group)分組,從而區分 Data ID 相同的配置集。

  • 配置快照

Nacos 的客戶端 SDK 會在本地生成配置的快照。當客戶端無法連線到 Nacos Server 時,可以使用配置快照顯示系統的整體容災能力。

  • 服務註冊

儲存服務例項和服務負載均衡策略的資料庫。

  • 服務發現

使用服務名對服務下的例項的地址和元資料進行探測,並以預先定義的介面提供給客戶端進行查詢。

  • 元資料

Nacos資料(如配置和服務)描述資訊,如服務版本、權重、容災策略、負載均衡策略等。

4、Nacos生態圈

Nacos 無縫支援一些主流的開源框架生態:

  • Spring Cloud 微服務框架 ;
  • Dubbo RPC框架 ;
  • Kubernetes 容器應用 ;

二、Nacos環境搭建

1、環境版本

這裡在Windos環境下搭建Nacos單個服務。

  • Nacos版本:官方推薦的穩定版本為1.1.4。
  • 基礎環境:JDK 1.8+;Maven 3.2.x

2、環境包下載

這裡直接下載打包好的檔案,也可以下載原始碼自己打包。

https://github.com/alibaba/nacos/releases

下載檔案:nacos-server-1.1.4.zip

3、啟動環境

  • 啟動檔案地址:nacos\bin
  • 啟動檔案:startup.cmd
  • 關閉檔案:shutdown.cmd

啟動後登陸,賬戶密碼預設:nacos/nacos ;首頁效果如下:

三、整合SpringBoot2

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

1、新建配置

2、核心依賴

<!-- Nacos 元件依賴 -->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-discovery-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>

3、Yml配置檔案

這裡把專案作為服務註冊到Nacos中。

nacos:
  config:
    server-addr: 127.0.0.1:8848
  discovery:
    server-addr: 127.0.0.1:8848

4、啟動類配置

啟動類關聯配置中心的dataId標識。

@EnableSwagger2
@SpringBootApplication
@NacosPropertySource(dataId = "WARE_ID", autoRefreshed = true)
public class Application7017 {
    public static void main(String[] args) {
        SpringApplication.run(Application7017.class,args) ;
    }
}

5、核心配置類

import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class NacosConfig {
    @Value("${server.port}")
    private int serverPort;
    @Value("${spring.application.name}")
    private String applicationName;
    @NacosInjected
    private NamingService namingService;
    @PostConstruct
    public void registerInstance() throws NacosException {
        namingService.registerInstance(applicationName, "127.0.0.1", serverPort);
    }
}

啟動成功後查詢服務列表:

6、基礎API用例

這裡演示兩個基礎用法:上述步驟1的配置內容讀取,步驟4的服務列表讀取。基於swagger2管理測試介面。

@Api("Nacos介面管理")
@RestController
@RequestMapping("/nacos")
public class NacosController {

    @NacosValue(value = "${MyName:null}", autoRefreshed = true)
    private String myName;
    @NacosValue(value = "${project:null}", autoRefreshed = true)
    private String project;

    @ApiOperation(value="查詢配置資訊")
    @GetMapping(value = "/info")
    public String info () {
        return myName+":"+project;
    }

    @NacosInjected
    private NamingService namingService;

    @ApiOperation(value="查詢服務列表")
    @GetMapping(value = "/getServerList")
    public List<Instance> getServerList (@RequestParam String serviceName) {
        try {
            return namingService.getAllInstances(serviceName) ;
        } catch (Exception e){
            e.printStackTrace();
        }
        return null ;
    }
}

四、原始碼地址

GitHub·地址
https://github.com/cicadasmile/middle-ware-parent
GitEE·地址
https://gitee.com/cicadasmile/middle-ware-parent

相關推薦

SpringBoot2 整合Nacos元件環境搭建入門案例

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、Nacos基礎簡介 1、概念簡介 Nacos 是構建以“服務”為中心的現代應用架構,如微服務正規化、雲原生正規化等服務基礎設施。聚焦於發現、配置和管理微服務。Nacos提供一組簡單易用的特性集,幫助開發者快速實現動態服務發現、服務配置、服務元資料

SpringBoot2 整合Kafka元件應用案例流程

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、搭建Kafka環境 1、下載解壓 -- 下載 wget http://mirror.bit.edu.cn/apache/kafka/2.2.0/kafka_2.11-2.2.0.tgz -- 解壓 tar -zxvf kafka_2.11-2.2

PostgreSQL應用(一環境搭建客戶端工具安裝)

一,PostgreSQL下載 官方下載地址: https://www.postgresql.org/download/ pgAdmin4客戶端工具下載地址:https://www.pgadmin.org/download/pgadmin-4-windows/ 二,安裝 本次PostgreSQ

SpringBoot2 整合 Zookeeper元件管理架構中服務協調

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、Zookeeper基礎簡介 1、概念簡介 Zookeeper是一個Apache開源的分散式的應用,為系統架構提供協調服務。從設計模式角度來審視:該元件是一個基於觀察者模式設計的框架,負責儲存和管理資料,接受觀察者的註冊,一旦資料的狀態發生變化,Z

SpringBoot2 整合JTA元件多資料來源事務管理

本文原始碼:[GitHub·點這裡](https://github.com/cicadasmile/middle-ware-parent) || [GitEE·點這裡](https://gitee.com/cicadasmile/middle-ware-parent) # 一、JTA元件簡介 ## 1、

SpringBoot2 整合Ehcache元件輕量級快取管理

本文原始碼:[GitHub·點這裡](https://github.com/cicadasmile/middle-ware-parent) || [GitEE·點這裡](https://gitee.com/cicadasmile/middle-ware-parent) # 一、Ehcache快取簡介 #

SpringBoot2 整合OAuth2元件模擬第三方授權訪問

本文原始碼:[GitHub·點這裡](https://github.com/cicadasmile/middle-ware-parent) || [GitEE·點這裡](https://gitee.com/cicadasmile/middle-ware-parent) # 一、模式描述 ![](http

資料倉庫元件:HBase叢集環境搭建應用案例

本文原始碼:[GitHub](https://github.com/cicadasmile/big-data-parent) || [GitEE](https://gitee.com/cicadasmile/big-data-parent) # 一、Hbase簡介 **1、基礎描述** Hadoop原

Go語言入門 環境搭建入門

Go語言環境搭建 官網下載golang 下載地址:download golang 進入官網下載地址後,根據自己的系統選擇相應的安裝包。 我的系統是Ubuntu 16.04,因此選擇Linux版本的golang。下載完後進入下載目錄將安裝包解壓至/usr/lo

Hibernate_day01---Hibernate環境搭建、配置檔案、核心api介紹

JavaEE三層結構對應的框架 1) web層:struts2框架 2) service層:spring框架 3)dao層:hibernate框架 -- 對資料庫進行crud操作 什麼是框架: 可複用的設計構件 作用:可以少寫一部分程式碼。使用框架寫程式,會幫我們實現一部

Django中聚合函式F表示式Q表示式

學習聚合函式的準備工作 新建一個專案,在新建一個app,名字隨意,然後在app中的models中定義幾個模型: from django.db import models # Create your models here. class Author(models.Model):

springboot2.0日誌配置 logback的使用logback.xml

只根據上面的我們會發現,日誌要麼輸出到檔案。要麼輸出到控制檯不能有選擇的輸出滿足我們的要求,這是需要看下面這個文章, 這兩篇文章結合,基本滿足我們實際應用的需要。 為了使我們的日誌更加利於觀看,我們可以把日誌做成html格式的, <?xml v

vue.js元件的全域性註冊區域性註冊

1全域性註冊例項(按照官網的例子下面是程式碼) <div id="app"> <com-btn></com-btn> <com-btn></com-btn> </div> &l

ssh整合下的配置檔案引數存放位置

本人初級程式設計師,今天無聊做了個demo,此demo是SSH框架。由於太久沒有搭建,前前後後也出現很多瑣碎的問題,特地總結配置檔案的存放和配置。 專案目錄如圖: . hibernate.cfg.xml和struts.xml放在src/main/resources目錄下

虛擬函式虛指標虛表

關於虛擬函式的背景知識 1. 用virtual關鍵字申明的函式叫做虛擬函式,虛擬函式肯定是類的成員函式。 2. 存在虛擬函式的類都有一個一維的虛擬函式表叫做虛表。每一個類的物件都有一個指向虛表開始的虛指標。虛表是和類對應的,虛表指標是和物件對應的

RN----匯入元件import from 'xxxx'的用法

作為一個初學者,在如何匯入自己寫的元件時,也容易犯怵,一個簡單的import問題也搞了我大半天,import的方式五花八門,細看下圖吧 就挑幾種在RN中,特別是初學期常用的方式來說說: 1.impo

SSH2框架搭建 配置檔案

SSH框架,當今最為流行的專案開發框架組合,那麼掌握他的第一步是學習如何配置環境,java Web開發的無論哪種框架都離不開各種xml配置,雖然說配置在網上到處都有,但是要成為合格的程式猿,必須要明白配置中每一部分的意義,分析它的規律,因此這一步至關重要。 SS

Appium+python自動化(一)- 環境搭建—上(超

 簡介   今天是高考各地由於降水,特別糟糕,各位考生高考加油,全國人民端午節快樂。最近整理了一下自動化的東西,先前整理的python介面自動化已經接近尾聲。即將要開啟新的征程和篇章(Appium&python)。那麼首相的問題就是搭建環境了。好久沒搭建環境又踩了不少坑,appium的環境

Appium+python自動化(二)- 環境搭建—下(超

簡介    巨集哥的人品還算說得過去,雖然很久沒有搭建環境了,但是換了新電腦裝置,一氣呵成,將android的測試開發環境已經搭建準備完畢。上一篇android測試開發環境已經準備好, 那麼接下來就是appium的環境安裝和搭建了。 嘿嘿!巨集哥和小夥伴們開個玩笑,不要覺得自人品不好,就不會成功

ESP8266模組使用環境搭建編譯燒錄

經過一陣子的搗漿糊,無數次的迷茫,困惑,終於慢慢看到點希望的曙光。網上的資料很多,但都不繫統,講地也不詳細,一半靠努力學,一半靠悟。阻擋了很多菜鳥的進步,我現在把我的經驗分享出來,希望少點痛苦多點成就感。      學習這個主要分兩大塊