springboot2.X手冊:Eureka不更,Consul被禁,啟用Nacos

2021-02-26 程式設計師閃充寶

引入包體
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.boots</groupId>
        <artifactId>boots</artifactId>
        <version>1.1.0.RELEASE</version>
    </parent>
    <artifactId>boots-register</artifactId>
    <name>boots-register</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>

        <!-- 公共組件:swagger服務+入參出參+統一異常攔截 -->
        <dependency>
            <groupId>com.boots</groupId>
            <artifactId>module-boots-api</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

        <!-- nacos服務註冊包 -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-discovery-spring-boot-starter</artifactId>
            <version>0.2.7</version>
        </dependency>

        <!-- nacos配置包 -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.7</version>
        </dependency>



    </dependencies>
</project>

配置類
/**
 * All rights Reserved, Designed By 林溪
 * Copyright:    Copyright(C) 2016-2020
 * Company       溪雲閣 .
 */

package com.boots.register.common.config;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;

/**
 * Nacos配置
 * @author:溪雲閣
 * @date:2020年6月12日
 */
@Configuration
public class NacosConfig {

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

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

    @Value("${nacos.host}")
    private String nacosHost;

    @NacosInjected
    private NamingService namingService;

    @PostConstruct
    public void registerInstance() throws NacosException {
        namingService.registerInstance(applicationName, nacosHost, serverPort);
    }

}

屬性文件配置
######配置基本信息######
##配置應用埠號
server.port: 8080
##配置應用名稱
spring.application.name: boots-register
##配置時間格式,為了避免精度丟失,全部換成字符串
spring.jackson.timeZone: GMT+8
spring.jackson.dateFormat: yyyy-MM-dd HH:mm:ss
spring.jackson.generator.writeNumbersAsStrings: true
##註冊及配置中心地址
nacos.host: 127.0.0.1
nacos.port: 8848
nacos.config.serverAddr: ${nacos.host}:${nacos.port}
nacos.discovery.serverAddr: ${nacos.host}:${nacos.port}

啟動類配置
package com.boots.register;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;

/**
 * 服務啟動類
 * @author:溪雲閣
 * @date:2020年5月2日
 */
@SpringBootApplication
@ComponentScan(basePackages = { "com.module", "com.boots" })
@NacosPropertySource(dataId = "DATA_BOOTS_ID", groupId="GROUP_BOOTS_ID", autoRefreshed = true)
public class BootsRegisterApplication {

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

}

接口編寫
/**
 * All rights Reserved, Designed By 林溪
 * Copyright:    Copyright(C) 2016-2020
 * Company       溪雲閣 .
 */

package com.boots.register.view.register.view;

import java.util.List;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.module.boots.api.message.ResponseMsg;
import com.module.boots.api.utils.MsgUtils;
import com.module.boots.exception.CommonRuntimeException;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;

/**
 * Nacos控制器
 * @author:溪雲閣
 * @date:2020年6月12日
 */
@Api(tags = { "web服務:查詢註冊中心上的信息" })
@RestController
@RequestMapping("view/minio")
public class NacosView {

    @NacosInjected
    private NamingService namingService;

    @NacosValue(value = "${project.name:null}", autoRefreshed = true)
    private String projectName;

    /**
     * 獲取項目名稱
     * @author 溪雲閣
     * @return ResponseMsg<String>
     */
    @ApiOperation(value = "獲取項目名稱")
    @GetMapping(value = "/getProjectName")
    @SneakyThrows(CommonRuntimeException.class)
    public ResponseMsg<String> getProjectName() {
        return MsgUtils.buildSuccessMsg(projectName);
    }

    /**
     * 查詢所有服務
     * @author 溪雲閣
     * @param serviceName
     * @return ResponseMsg<List<Instance>>
     */
    @ApiOperation(value = "查詢所有服務")
    @GetMapping(value = "/getAllServices")
    @SneakyThrows({ CommonRuntimeException.class, NacosException.class })
    public ResponseMsg<List<Instance>> getAllServices(@RequestParam("serviceName") String serviceName) {
        return MsgUtils.buildSuccessMsg(namingService.getAllInstances(serviceName));
    }

}

測試

此時如果你在Nacos上更改配置上面的屬性,發布後重新獲取數據,也會跟著變更。

拓展

1、生產中,要把做高可用

好文章,我在看

相關焦點

  • 官方公告:2017LPL職業聯賽重大變化公告,10ban制正式啟用
    今年的LPL比賽相對於以前的比賽產生了一系列變化,包括《英雄聯盟》史上第一次10ban位禁選,全新的積分規則和選手流動及大名單規則。這些變化將在不同程度上對新賽季的職業賽場產生不同的影響。變化一:啟用十英雄禁選根據拳頭遊戲(Riot)最新規定,10英雄禁選規則將從2017年LPL春季賽開始啟用!
  • Linux有問必答:如何在Linux Mint Cinnamon啟用桌面共享
    最新的Linux Mint 17 Cinnamon桌面附帶了預安裝用於VNC桌面共享的vino-server,但是它報告說桌面共享菜單丟失了。一個配置vino-server並啟用桌面共享的可選方式,是使用dconf-editor的圖形界面。
  • 2019年第2波員工安全手冊考核有獎活動來啦!
    手冊裡的安全知識點還記得嗎?我們要進行第2輪考試了嘍!對,你沒有看錯!我們要針對公司《員工安全手冊》進行有獎考試活動啦!!!1.考試人員要求:2019年8月31日前入職的全體員工。趕緊拿起你的員工安全手冊開始學習吧!)2.考試時間:2019年9月16日-2019年9月27日(每次答題時間為1小時,逾期未完成答卷,答題頁面將自動完成交卷操作。)3.考試題型:40個題,每題2.5分,共計100分,題型有單選、判斷、多選題,試題為平臺隨機分配。(對滴!每個小夥伴們的題目都會不一樣哦~)4.
  • 中心醫院口腔科新門診升級啟用:環境升級!服務更升級!
    ……在全新升級啟用的義烏市中心醫院口腔科門診(門診五樓),每位前來就診的市民都不由自主豎起了大拇指。為了更好服務廣大患者,提供更優質的口腔醫療服務,我院口腔科一期工程經過重新布局、裝修後全面升級,已於8月22日正式啟用。
  • 懷孕女教師偷食男同事,聊天記錄曝光,網民:勁過《金x梅》!
    內地網絡日前瘋傳多張對話截圖,顯示現年30歲體育教師武劍和29歲已婚女教師王璇的姦情,關係更維持了2年,時間橫跨女方未婚、結婚、懷孕、產後,比電影情節更誇張
  • 馬山縣愛心捐血屋正式啟用,獻血有趣更有「人情味」
    1月25日,位於縣城冠超市旁的愛心捐血屋正式揭牌啟用。愛心捐血屋採用「網際網路+無償獻血」結合的模式,簡化獻血流程,在保障血液安全的同時,為獻血者帶來更為智能、便捷、高效和溫馨的獻血體驗。當天上午,馬山縣愛心捐血屋啟用揭牌儀式在冠超市邊的愛心捐血屋前舉行。副縣長黃任含、南寧中心血站站長、市獻血辦副主任餘梅等出席儀式,並一同為愛心捐血屋的正式啟用揭牌。
  • 【優質履約】以色列特拉維夫綠線輕軌G3-2項目現場主營地正式啟用
    當地時間2月21日上午,中建特拉維夫綠線輕軌G3-2項目舉行現場主營地辦公室啟用儀式。項目業主特拉維夫大都會軌道交通有限公司(NTA)總裁哈依姆·格裡克,副總裁阿納特·阿爾伯特,項目業主代表麗婭·莎姆,項目監理Spivak公司項目代表艾瑞克·莫森桑,以色列分公司和綠線輕軌項目相關負責人等共計70餘人出席啟用儀式。
  • 【葡萄牙生活手冊】葡萄牙新移民必讀:解讀《2015生活手冊》
    自從2012年10月以來,隨著葡萄牙政府放寬移民政策推出「黃金居留計劃」之後,你們通過在葡萄牙買房得到了葡萄牙居留卡,成為新一代葡萄牙移民,作為一位老華僑,作為一家專業從事移民中介服務的公司和網站,我們認為應該儘快告訴你們一些在葡萄牙生活的常識。
  • NetSpring社會企業實習生招募
    匯益澤社會企業 www.netspringworld.com(點擊左下角「閱讀原文」可進入網站)作為中國社會企業的開拓者,匯益澤秉行「社會創新、環保、循環經濟」的綠色公益理念,致力於環境保護(減少電子廢棄物汙染)和貧困問題(在偏遠鄉村地區建設再生電腦教室)。
  • Poetic Spring Festival!
    A pool under the shade of elms,It's not a spring, it's a rainbow;Crushed in the floating algae,Precipitation of rainbow like dream.The Dream Pursued?
  • 「春運」的英文不是「spring travel」!這樣說才最地道!
    「春運」可以翻譯成「spring travel」嗎?別忘了一邊聽音頻,一邊看內容:1.「春運」用英文怎麼說?說起春運,大家腦海中的第一反應應該是「spring travel」,甚至有人會直接說spring transportation其實,直譯往往會帶來這樣的後果,即讓我們一葉障目,不見泰山。
  • 【CNY in HZ】Feb.11-15 Food & Hike & Hot Spring
    14:00 Make traditional spring couplets and put it on your doors, and make our own filling for our dumplings, learn how to make dumpling and cook it for our dinner.
  • 麥當勞啟用新的「環保」餐具,結果變得更不環保
    去年進行試驗後,英國和愛爾蘭所有的1361家麥當勞都啟用紙吸管。But the fast food giant acknowledged that the new versions are too thick to be processed by its recyclers.但是這家食品巨頭承認,新版本太厚了,回收商無法進行處理。
  • HW平安夜: 09/15 紅隊滲透手冊之彈藥篇
    2.選擇「服務」->」AdminServer」->」協議」,取消「啟用 IIOP」的勾選。3.重啟 Weblogic 項目,使配置生效。02 情報收集Fastjson < 1.2.60 在取不到值的時候會填充 \u001a ,在1.2.60 進行了修復, 對 \x 後面的字符進行是否為16進位允許字符 (0-9a-fA-F) 的校驗,所以這裡就可以手動 padding ,構造一個特殊的字符串。
  • 連城2人被終生禁駕,1人終生不得申領機動車駕駛證,原因是…​
    終生禁駕丨2020年下半年,龍巖有5人終生禁駕,3人終生不得申領機動車駕駛證,原因是…普法:哪些原因會被終生禁駕?附件1:2020年下半年度吊銷機動車駕駛證並終生禁駕名單附件2:2020年下半年度終生不得申請機動車駕駛證名單龍巖
  • 4月4日 上海地鐵2、11號線啟用掃墓專項運行圖
    臨近2020年清明,受新冠肺炎疫情影響,今年清明期間祭掃踏春出行客流量或較往年降低,考慮仍將有部分祭掃踏青乘客集中出行,上海地鐵特制定「2020年清明運營組織方案」,通過全面提升保駕等級、2、11號線啟用掃墓運行圖、重點車站強化現場客流疏導管控等多項服務舉措
  • 雙語|麥當勞啟用新的「環保」餐具,結果變得更不環保
    去年進行試驗後,英國和愛爾蘭所有的1361家麥當勞都啟用紙吸管。But the fast food giant acknowledged that the new versions are too thick to be processed by its recyclers.但是這家食品巨頭承認,新版本太厚了,回收商無法進行處理。