1. 程式人生 > 其它 >SpringCloudAlibaba專案之Nacos搭建及服務註冊

SpringCloudAlibaba專案之Nacos搭建及服務註冊

SpringCloudAlibaba隨筆目錄

一、SpringCloudAlibaba專案之父工程搭建

二、SpringCloudAlibaba專案之Nacos搭建及服務註冊

三、SpringCloudAlibaba專案之生產者與消費者

四、SpringCloudAlibaba專案之Ribbon負載均衡

五、SpringCloudAlibaba專案之OpenFeign遠端呼叫

六、SpringCloudAlibaba專案之

七、SpringCloudAlibaba專案之

SpringCloud專案之Nacos搭建及服務註冊

1、Nacos簡介

Nacos 是阿里巴巴推出來的一個新開源專案,這是一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。

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

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

Nacos註冊中心分為server與client,server採用Java編寫,為client提供註冊發現服務與配置服務。而client可以用多語言實現,client與微服務巢狀在一起,nacos提供sdk和openApi,如果沒有sdk也可以根據openApi手動寫服務註冊與發現和配置拉取的邏輯

2、Nacos優勢

常見的註冊中心:

Eureka(原生,2.0遇到效能瓶頸,停止維護)
Zookeeper(支援,專業的獨立產品。例如:dubbo)
Consul(原生,GO語言開發)
Nacos
相對於 Spring Cloud Eureka 來說,Nacos 更強大。

Nacos = Spring Cloud Eureka + Spring Cloud Config

Nacos 可以與 Spring, Spring Boot, Spring Cloud 整合,並能代替 Spring Cloud Eureka, Spring Cloud Config。

通過 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 實現配置的動態變更。

通過 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 實現服務的註冊與發現。

>>NacosEurekaConsulCoreDNSZookeeper
一致性協議 CP+AP AP CP / CP
健康檢查 TCP/HTTP/Mysql/Client Beat Client Beat TCP/HTTP/gRPC/Cmd / Client Beat
負載均衡 權重/DSL/metadata/CMDB Ribbon Fabio RR /
雪崩保護 支援 支援 不支援 不支援 不支援
自動登出例項 支援 支援 不支援 不支援 支援
訪問協議 HTTP/DNS/UDP HTTP HTTP/DNS DNS TCP
監聽支援 支援 支援 支援 不支援 支援
多資料中心 支援 支援 支援 不支援 不支援
跨註冊中心 支援 不支援 支援 不支援 不支援
SpringCloud 支援 支援 支援 不支援 不支援
Dubbo整合 支援 不支援 不支援 不支援 支援
K8s整合 支援 不支援 支援 支援 不支援

3、Nacos安裝(註冊中心-服務端,使用SaaS,軟體即服務

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

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

Linux:sh startup.sh
Windows:startup.cmd

根據對應版本關係,Nacos選擇版本:2.0.3

演示系統為:windows

Nacos預設為叢集模式(cluster),首先我們修改startup.cmd中模式為單機模式(standalone)

我們執行Nacos看看效果,

訪問:http://127.0.0.1:8848/nacos,預設賬號:nacos,密碼:nacos,可以進入Nacos的服務管理頁面:

4、SpringCloud整合Nacos客戶端(註冊中心-客戶端)

專案目錄:

父工程pom檔案新增:

<modules>
       <module>service-nacos</module>
</modules>

service-nacos專案pom檔案新增依賴:

<!-- springweb 啟動依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- nacos 服務註冊發現(客戶端)依賴 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

application.properties

# 應用名稱(nacos會將應用名稱當作服務名稱)
spring.application.name=service-nacos
# 應用服務 WEB 訪問埠
server.port=8020
# Nacos幫助文件: https://nacos.io/zh-cn/docs/concepts.html
# Nacos認證資訊
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
# Nacos 服務發現與註冊配置,其中子屬性 server-addr 指定 Nacos 伺服器主機和埠
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 註冊到 nacos 的指定 namespace,預設為 public
spring.cloud.nacos.discovery.namespace=public

啟動類

@SpringBootApplication
@EnableDiscoveryClient //從Spring Cloud Edgware開始,@EnableDiscoveryClient可省略。只需加上相關依賴,並進行相應配置,即可將微服務註冊到服務發現元件上。
public class ServiceNacosApplication {

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

訂單服務介面:

/**
 * 訂單服務
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    /**
     * 下單
     * @return
     */
    @RequestMapping("/add")
    public String addOrder(){
        System.out.println("下單成功");

        return "訂單服務";
    }
}

nacos註冊成功效果圖:

參考連結:https://www.jianshu.com/p/39ade28c150d