SpringCloudAlibaba項目之Nacos搭建及服務注冊


SpringCloudAlibaba隨筆目錄

一、SpringCloudAlibaba項目之父工程搭建

二、SpringCloudAlibaba項目之Nacos搭建及服務注冊

三、SpringCloudAlibaba項目之生產者與消費者

四、SpringCloudAlibaba項目之Ribbon負載均衡

五、SpringCloudAlibaba項目之OpenFeign遠程調用

六、SpringCloudAlibaba項目之Nacos-config配置中心

七、SpringCloudAlibaba項目之Sentinel流量控制

八、SpringCloudAlibaba項目之Seata分布式事務

九、SpringCloudAlibaba項目之GateWay網關

十、SpringCloudAlibaba項目之SkyWalking鏈路

 

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 實現服務的注冊與發現。

>> Nacos Eureka Consul CoreDNS Zookeeper
一致性協議 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM