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模組使用,環境搭建,編譯和燒錄
經過一陣子的搗漿糊,無數次的迷茫,困惑,終於慢慢看到點希望的曙光。網上的資料很多,但都不繫統,講地也不詳細,一半靠努力學,一半靠悟。阻擋了很多菜鳥的進步,我現在把我的經驗分享出來,希望少點痛苦多點成就感。 學習這個主要分兩大塊