日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

本文作者:HelloGitHub-秦人

HelloGitHub 推出的《講解開源項(xiàng)目》系列,今天給大家?guī)硪豢铋_源 JAVA 版可以實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn),配置和服務(wù)管理平臺(tái)——Nacos,它是阿里巴巴團(tuán)隊(duì)推出的,符合國人的一切使用習(xí)慣,并且中文文檔豐富,開源社區(qū)也特別活躍。

項(xiàng)目源碼地址:https://github.com/alibaba/nacos

一、項(xiàng)目介紹

在選擇使用一個(gè)工具之前,我們先大概了解一下它的同類型產(chǎn)品,這樣更能看出它的價(jià)值。

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

提供了一組簡單易用的特性集,幫助開發(fā)者快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。主要特性:

  • 服務(wù)發(fā)現(xiàn):支持基于 DNS 和基于 RPC 的服務(wù)發(fā)現(xiàn)。服務(wù)提供者使用 原生SDK、OpenAPI、或一個(gè)獨(dú)立的 Agent TODO 注冊(cè) Service 后,服務(wù)消費(fèi)者可以使用 DNS TODO 或 HTTP&API 查找和發(fā)現(xiàn)服務(wù)。
  • 服務(wù)健康監(jiān)測:提供對(duì)服務(wù)的實(shí)時(shí)的健康檢查,阻止向不健康的主機(jī)或服務(wù)實(shí)例發(fā)送請(qǐng)求。
  • 動(dòng)態(tài)配置服務(wù):動(dòng)態(tài)配置服務(wù)可以讓您以中心化、外部化和動(dòng)態(tài)化的方式管理所有環(huán)境的應(yīng)用配置和服務(wù)配置。
  • 動(dòng)態(tài) DNS 服務(wù):動(dòng)態(tài) DNS 服務(wù)支持權(quán)重路由,使用者更容易地實(shí)現(xiàn)中間層負(fù)載均衡、更靈活的路由策略、流量控制以及數(shù)據(jù)中心內(nèi)網(wǎng)的簡單DNS解析服務(wù)。
  • 服務(wù)及其元數(shù)據(jù)管理:Nacos 能讓使用者從微服務(wù)平臺(tái)建設(shè)的視角管理數(shù)據(jù)中心的所有服務(wù)及元數(shù)據(jù),包括管理服務(wù)的描述、生命周期、服務(wù)的靜態(tài)依賴分析、服務(wù)的健康狀態(tài)、服務(wù)的流量管理、路由及安全策略、服務(wù)的 SLA 以及最首要的 metrics 統(tǒng)計(jì)數(shù)據(jù)。

Nacos 生態(tài)圖

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

二、SpringBoot 實(shí)戰(zhàn)

Nacos 主要的功能有配置中心和注冊(cè)中心。

  • 配置中心:通過在 Nacos 上配置用戶名,在不重啟微服務(wù)的情況下實(shí)現(xiàn)動(dòng)態(tài)獲取配置信息功能。
  • 注冊(cè)中心:創(chuàng)建兩個(gè)微服務(wù):服務(wù)提供者和服務(wù)消費(fèi)者,實(shí)現(xiàn)微服務(wù)間調(diào)用。消費(fèi)者要調(diào)用提供者的接口,只需要聲明提供者的微服務(wù)名稱和接口的請(qǐng)求地址,Nacos 就可準(zhǔn)確地找到到對(duì)應(yīng)的接口。

2.1 運(yùn)行 Nacos

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

unzip nacos-server-$version.zip  #解壓
cd nacos/bin
startup.cmd -m standalone #單機(jī)模式

訪問首頁

Nacos 的訪問地址:http://localhost:8848/nacos/ 默認(rèn)賬號(hào)密碼:nacos nacos

頁面截圖如下:

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

2.2 配置中心

創(chuàng)建微服務(wù)項(xiàng)目

創(chuàng)建 SpringBoot 項(xiàng)目主要有三種方式:通過網(wǎng)站創(chuàng)建,IntelliJ IDEA 的 Spring Initializr 工具創(chuàng)建,Maven 創(chuàng)建項(xiàng)目形式創(chuàng)建。

項(xiàng)目的pom 文件內(nèi)容如下:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!--nacos-config的Spring cloud依賴  -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>0.9.0.RELEASE</version>
    </dependency>

bootstrap.yml 配置

spring:
  Application:
    name: nacos-config
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: nacos-config
  profiles:
    active: dev

Nacos 配置

Nacos 上創(chuàng)建配置文件名稱格式:${prefix}-${spring.profile.active}.${file-extension},如上一步bootstrap.yml的配置可知,我要?jiǎng)?chuàng)建的配置名為:nacos-config-dev.yaml,內(nèi)容如下:

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

創(chuàng)建 Controller

動(dòng)態(tài)獲取用戶名稱的功能為例:

創(chuàng)建一個(gè)對(duì)外接口 /username 代碼如下:

@RestController
@RefreshScope
public class ConfigController {

    @Value("${username:wangzg}")
    private String username;

    @RequestMapping("/username")
    public String userNameInfo() {
        return username;
    }
}

注意:Controller 上要添加 @RefreshScope注解 它實(shí)現(xiàn)了配置的熱加載。

驗(yàn)證結(jié)果

本地運(yùn)行項(xiàng)目,可以看到項(xiàng)目的啟動(dòng)時(shí),端口已變?yōu)槲覀冊(cè)?nbsp;Nacos 上配置的端口8090。

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

在瀏覽器訪問鏈接:http://localhost:8090/username,返回 testuser。修改 Nacos 上 username 的值,不需要重啟微服務(wù),重新請(qǐng)求鏈接 username 的值會(huì)動(dòng)態(tài)變。可見 Nacos 作為配置中心實(shí)現(xiàn)了熱加載功能。

2.3 注冊(cè)中心

  1. 創(chuàng)建服務(wù)提供者

創(chuàng)建微服務(wù)可參上面配置中心的創(chuàng)建方式,創(chuàng)建對(duì)外接口 /sayHello 代碼如下:

@RestController
public class ProviderController {

    @GetMapping("/sayHello")
    public String sayHello(@RequestParam(value = "name",defaultValue = "helloword")String sayHello){

        return "tom say: " + sayHello;
    }
}

啟動(dòng)服務(wù),訪問地址:http://localhost:8099/sayHello,可輸出:tom say: helloWord,表示微服務(wù)已創(chuàng)建成功。

  1. 創(chuàng)建服務(wù)消費(fèi)者

這里采用 FeignClient 的方式實(shí)現(xiàn)跨服務(wù)間調(diào)用(有興趣的同學(xué)也可以研究一下RestTemplate的方式)。

pom 文件

在 nacos-consumer 的 pom 文件要添加 Feigin-Client 的 maven 依賴。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

添加注解

在微服務(wù)啟動(dòng)類 *Application.java 添加注解 @EnableFeignClients。

創(chuàng)建 FeignClient

@FeignClient("nacos-provider")
public interface ProviderClient {

    @GetMapping("/sayHello")
    String sayHello(@RequestParam(value = "name", defaultValue = "wangzg", required = false) String name);
}

說明:FeignClient 注解傳入的 name ,指定FeignClient的名稱,如果項(xiàng)目使用了 Ribbon,name 屬性會(huì)作為微服務(wù)的名稱,用于服務(wù)發(fā)現(xiàn)。

創(chuàng)建 ConsumerController

@RestController
public class ConsumerController {

    @Autowired
    ProviderClient providerClient;

    @GetMapping("/hi-feign")
    public String hiFeign(){
       return providerClient.sayHello("feign");
    }
}

重啟工程,在瀏覽器上訪問 http://localhost:8090/hi-feign,可以在瀏覽器上展示正確的響應(yīng),這時(shí) nacos-consumer 調(diào)用 nacos-provider 服務(wù)成功。

下面一張請(qǐng)求流轉(zhuǎn)的時(shí)序圖,這樣理解清晰一些。

搞微服務(wù)用阿里開源的 Nacos 真香啊

 

項(xiàng)目地址:https://github.com/hellowHuaairen/wangzgSpringBootTest

三、最后

微服務(wù)有四大特點(diǎn):

  • 小(微服務(wù)粒度小)
  • 獨(dú)(獨(dú)立部署運(yùn)行和擴(kuò)展)
  • 輕(系統(tǒng)簡潔輕量化)
  • 松(高內(nèi)聚低耦合)

要完成一個(gè)復(fù)雜系統(tǒng)往往需要很多微服務(wù)單元,而銜接每個(gè)微服務(wù),完成微服務(wù)的統(tǒng)一管理就非常有必要,所以集成服務(wù)管理中心和配置中心的產(chǎn)品就的就應(yīng)運(yùn)而生,而 Nacos 是其中的佼佼者!

教程至此,你應(yīng)該也能對(duì) Nacos 有一些了解!光看不練假把式,最快的學(xué)習(xí)方式莫過于模仿,再通過舉一反三才能融會(huì)貫通。每一種新工具都是對(duì)老工具的革新,有興趣的小伙伴可以參考我上面的案例,在實(shí)踐中會(huì)發(fā)現(xiàn)更多樂趣!

分享到:
標(biāo)簽:微服 Nacos
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定