国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos

這篇具有很好參考價值的文章主要介紹了云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系列文章目錄

第一章 Java線程池技術應用
第二章 CountDownLatch和Semaphone的應用
第三章 Spring Cloud 簡介
第四章 Spring Cloud Netflix 之 Eureka
第五章 Spring Cloud Netflix 之 Ribbon
第六章 Spring Cloud 之 OpenFeign
第七章 Spring Cloud 之 GateWay
第八章 Spring Cloud Netflix 之 Hystrix
第九章 代碼管理gitlab 使用
第十章 SpringCloud Alibaba 之 Nacos discovery

云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos,Java微服務,微服務,架構,云原生,Nacos discovery,服務發(fā)現(xiàn),服務注冊,SpringC Alibaba,1024程序員節(jié)


前言

Nacos 英文全稱為 Dynamic Naming and Configuration Service,它是一個開源的、易于使用的、功能強大的配置和發(fā)現(xiàn)管理系統(tǒng),由阿里巴巴團隊使用 Java 語言開發(fā)的開源項目。Nacos 為微服務架構提供了一種簡單、靈活、動態(tài)的配置管理方案,可以支持大規(guī)模的分布式系統(tǒng)和云原生應用。它旨在提供動態(tài)服務發(fā)現(xiàn)、配置管理和服務管理等功能,幫助開發(fā)者構建易于擴展、動態(tài)適應的分布式系統(tǒng)。

1、Nacos 的命名是由 3 部分組成

組成部分 全稱 描述
Na naming/nameServer 即服務注冊中心,與 Spring Cloud Eureka 的功能類似。
co configuration 即配置中心,與 Spring Cloud Config+Spring Cloud Bus 的功能類似。
s service 即服務,表示 Nacos 實現(xiàn)的服務注冊中心和配置中心都是以服務為核心的。

1.1、技術升級和替換

前幾章節(jié)我們介紹了Spring Cloud Netflix套件,今天開始我們升級成使用Spring Cloud Alibaba。
Spring Cloud Alibaba 的 Nacos discovery,會替換掉Spring Cloud Netflix 的 Eureka。
云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos,Java微服務,微服務,架構,云原生,Nacos discovery,服務發(fā)現(xiàn),服務注冊,SpringC Alibaba,1024程序員節(jié)

1.2、系統(tǒng)架構圖

整個電商微服務架構,選用Spring Cloud Alibaba套件,包括:

  • 熔斷限流(Spring Cloud Alibaba Sentinel)
  • 微服務注冊中心(Nacos Discovery)
  • 微服務配置(Nacos Discovery Config)
  • 微服務調(diào)用(Nacos Discovery)

再加上Spring Cloud組件:

  • 負載均衡(openFeign)
  • 網(wǎng)關(Gateway)

以及:

  • 分庫分表(Apache ShardingSphere-JDBC)
  • 緩存集群(Redis主從)

云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos,Java微服務,微服務,架構,云原生,Nacos discovery,服務發(fā)現(xiàn),服務注冊,SpringC Alibaba,1024程序員節(jié)

2、Nacos兩大組件

組件 描述 功能
Nacos Server Nacos 服務端,與 Eureka Server 不同,Nacos Server 由阿里巴巴團隊使用 Java 語言編寫并將 Nacos Server 的下載地址給用戶,用戶只需要直接下載并運行即可。 Nacos Server 可以作為服務注冊中心,幫助 Nacos Client 實現(xiàn)服務的注冊與發(fā)現(xiàn)。
Nacos Server 可以作為配置中心,幫助 Nacos Client 在不重啟的情況下,實現(xiàn)配置的動態(tài)刷新。
Nacos Client Nacos 客戶端,通常指的是微服務架構中的各個服務,由用戶自己搭建,可以使用多種語言編寫。 Nacos Client 通過添加依賴 spring-cloud-starter-alibaba-nacos-discovery,在服務注冊中心(Nacos Server)中實現(xiàn)服務的注冊與發(fā)現(xiàn)。
Nacos Client 通過添加依賴 spring-cloud-starter-alibaba-nacos-config,在配置中心(Nacos Server)中實現(xiàn)配置的動態(tài)刷新。

云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos,Java微服務,微服務,架構,云原生,Nacos discovery,服務發(fā)現(xiàn),服務注冊,SpringC Alibaba,1024程序員節(jié)

3、Nacos 實現(xiàn)服務注冊與發(fā)現(xiàn)的流程如下:

3.1、下載軟件

從 Nacos 官方提供的下載頁面中,下載 Nacos Server 并運行。

3.2、服務提供者

Nacos Client 啟動時,會把服務以服務名(spring.application.name)的方式注冊到服務注冊中心(Nacos Server)

3.3、 服務消費者

  • Nacos Client 啟動時,也會將自己的服務注冊到服務注冊中心;
  • 服務消費者在注冊服務的同時,它還會從服務注冊中心獲取一份服務注冊列表信息,該列表中包含了所有注冊到服務注冊中心上的服務的信息(包括服務提供者和自身的信息);
  • 在獲取了服務提供者的信息后,服務消費者通過 HTTP 或消息中間件遠程調(diào)用服務提供者提供的服務。

4、實戰(zhàn)應用

4.1、版本兼容說明

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

4.2、Nacos server安裝

下載:
https://github.com/alibaba/nacos/releases/tag/2.0.4
云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos,Java微服務,微服務,架構,云原生,Nacos discovery,服務發(fā)現(xiàn),服務注冊,SpringC Alibaba,1024程序員節(jié)

4.3、啟動nacos

Nacos Server 下各目錄說明如下:

  • bin:用于存放 Nacos 的可執(zhí)行命令。
  • conf:用于存放 Nacos 配置文件。
  • target:用于存放 Nacos 應用的 jar 包。
    進入bin目錄,執(zhí)行啟動命令:startup.cmd -m standalone
    http://localhost:8848/nacos
    用戶名/密碼:nacos/nacos

4.4、工程改造

4.4.1、父pom改造

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>2021.0.5</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<!--spring cloud alibaba 依賴-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2021.0.4.0</version>
		<type>pom</type>
    <scope>import</scope>
</dependency>

4.4.2、服務提供者改造

  • 添加依賴
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2021.0.4.0</version>
</dependency>

  • 添加配置
spring:
  application:
    name: app-provider-service #服務名
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  • 啟動類加注解
    @EnableDiscoveryClient
    啟動應用,查看nacos后臺

4.4.3、服務消費者改造

  • 添加依賴
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2021.0.4.0</version>
</dependency>
  • 添加配置
spring:
  application:
    name: app-api-service #服務名
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos server 的地址
  • 啟動類添加注解
    @EnableDiscoveryClient

4.4.4、 Config配置

創(chuàng)建config文件夾,在下面添加LoadBalancedConfig配置

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class LoadBalancedConfig {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

4.4.5、調(diào)用者實例

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    private final static String SERVER_URL = "http://localhost:8080";
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getUserName")
    public Map getUserName() {
        String url = SERVER_URL + "/user/getUserName";
        Map map = restTemplate.getForObject(url , Map.class);
        map.put("type" , "caller");
        return map;
    }

}

5、集成openFeign

5.1、修改調(diào)用方配置文件

5.1.1、增加springcloud依賴

<dependencyManagement>
    <dependencies>
        <!--spring cloud 依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2021.0.5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--spring cloud alibaba 依賴-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2021.0.4.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

5.1.2、增加openFeign依賴項

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

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

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

    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-loadbalancer -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>
</dependencies>

5.2、調(diào)用方代碼改造

5.2.1、在啟動類增加openFeign配置

@EnableFeignClients

5.2.2、新增服務層接口:UserService

import com.xxx.common.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = "app-provider-service")
public interface UserService {
    @GetMapping("/user/getUserName")
    public User getUserName() ;
}

5.2.3、改造控制層方法:

@Autowired
private UserService userService;

@GetMapping("/getUserName")
public Map getUserName() {
    User user = userService.getUserName();
    Map map = new HashMap();
    map.put("code" , 200);
    map.put("data" , user);
    map.put("type" , "caller");
    return map;
}

總結(jié)

云原生微服務治理有很多手段,但在Java生態(tài)里,最主流的還是Spring Cloud Alibaba 、Spring Cloud Netflix。
Spring Cloud文章的前部分已經(jīng)把Spring Cloud Netflix相關組件講解且實踐過了,這章我們講解了Spring Cloud Alibaba的Nacos discovery,后續(xù)還會繼續(xù)講解完Spring Cloud Alibaba其他組件。文章來源地址http://www.zghlxwxcb.cn/news/detail-713647.html

到了這里,關于云原生微服務實戰(zhàn) Spring Cloud Alibaba 之 Nacos的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Spring Cloud Alibaba--Nacos服務注冊和配置中心

    Spring Cloud Alibaba--Nacos服務注冊和配置中心

    Nacos 是Dynamic Naming and Configuration Service的首字母簡稱,一個更易于構建云原生應用的動態(tài)服務發(fā)現(xiàn)、配置管理和服務管理平臺。 Nacos的特性,官網(wǎng)解釋如下: 服務發(fā)現(xiàn)和服務健康監(jiān)測 Nacos 支持基于 DNS 和基于 RPC 的服務發(fā)現(xiàn)。服務提供者使用 原生SDK、OpenAPI、或一個獨立的Age

    2024年02月05日
    瀏覽(117)
  • 【springcloud 微服務】Spring Cloud Alibaba Nacos使用詳解

    目錄 一、前言 二、nacos介紹 2.1??什么是 Nacos 2.2 nacos 核心能力 2.2.1 服務發(fā)現(xiàn)和服務健康監(jiān)測

    2024年01月22日
    瀏覽(26)
  • 【Spring Cloud Alibaba】2.服務注冊與發(fā)現(xiàn)(Nacos安裝)

    【Spring Cloud Alibaba】2.服務注冊與發(fā)現(xiàn)(Nacos安裝)

    我們要搭建一個 Spring Cloud Alibaba 項目就繞不開 Nacos ,阿里巴巴提供的 Nacos 組件,可以提供服務注冊與發(fā)現(xiàn)和分布式配置服務,擁有著淘寶雙十一十幾年的流量經(jīng)驗,還是非常的可靠的。 Nacos 依賴 Java 環(huán)境來運行。如果您是從代碼開始構建并運行Nacos,還需要為此配置 Maven環(huán)

    2024年01月23日
    瀏覽(23)
  • day10-Spring Cloud Alibaba Nacos-服務注冊與配置中心

    官網(wǎng):https://github.com/alibaba/nacos,Nacos官方中文手冊 Nacos:Spring Cloud Alibaba服務注冊與配置中心(非常詳細) (biancheng.net) Spring Cloud Alibaba系列-一文讀懂Nacos原理 - 掘金 (juejin.cn) Nacos /nɑ:k??s/ 是 Dynamic Naming and Configuration Service的首字母簡稱,一個更易于構建云原生應用的動態(tài)服

    2024年02月08日
    瀏覽(121)
  • Spring Cloud Alibaba-02-Nacos Discovery服務治理及負載均衡

    Spring Cloud Alibaba-02-Nacos Discovery服務治理及負載均衡

    Lison dreamlison@163.com , v1.0.0 , 2023.05.10 先來思考一個問題 通過上一章的操作,我們已經(jīng)可以實現(xiàn)微服務之間的調(diào)用。但是我們把服務提供者的網(wǎng)絡地址 (ip,端口)等硬編碼到了代碼中,這種做法存在許多問題: 一旦服務提供者地址變化,就需要手工修改代碼 一旦是多個服務提供

    2024年02月22日
    瀏覽(93)
  • SpringCloudAlibaba微服務實戰(zhàn)系列(一)Nacos服務注冊發(fā)現(xiàn)

    SpringCloudAlibaba微服務實戰(zhàn)系列(一)Nacos服務注冊發(fā)現(xiàn)

    實戰(zhàn)前先做一個背景了解。 單體架構:近幾年技術的飛速發(fā)展,各種各樣的服務已經(jīng)進入到網(wǎng)絡化。單體架構發(fā)布時只需要打成一個war或jar包發(fā)布即可;而隨著業(yè)務量激增或網(wǎng)站流量的增加,必會暴露致命缺陷。 SOA:Service Oriented Architecture 面向服務的體系結(jié)構。旨在提升代

    2024年02月15日
    瀏覽(47)
  • Spring Cloud Alibaba 微服務部署

    Spring Cloud Alibaba 微服務部署

    一、安裝jdk環(huán)境(1.8) 1、以Linux系統(tǒng)部署為主,我這邊用的系統(tǒng)是ubuntu。 2、準備好一個JDK的壓縮包,可以去官網(wǎng)下載,常用版本JDK8 3、將壓縮包可以存放于 /opt 或者 /usr/local 目錄下,然后進行解壓,如果是.zip壓縮文件,可以使用unzip 命令來解壓縮。 4、配置環(huán)境變量 5、重

    2024年02月05日
    瀏覽(20)
  • Spring Cloud Alibaba 微服務2,注冊中心演變 + Nacos注冊中心與配置中心

    Spring Cloud Alibaba 微服務2,注冊中心演變 + Nacos注冊中心與配置中心

    ??作者簡介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計劃導師?、博客專家?? , 專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。 ??本文收錄于 Java基礎教程系列(進階篇) ,本專欄是針對大學生、初級Java工程師精心打造, 針對Java生態(tài),逐個擊破,

    2024年02月02日
    瀏覽(1681)
  • 從0到1搭建spring cloud alibaba +springboot+nacos+dubbo微服務

    從0到1搭建spring cloud alibaba +springboot+nacos+dubbo微服務

    ? 由以上版本對應關系: ????????springboot版本:2.3.2.RELEASE ? ? ? ? spring cloud 版本選擇:Hoxton.SR9 ? ? ? ? spring cloud alibaba版本選擇:2.2.6.RELEASE 父工程的父工程:() ?版本依賴關系: ???????? ? 其他業(yè)務模塊依賴: 使用nacos做配置中心和注冊中心+dubbo做RPC調(diào)用 配置文

    2024年02月11日
    瀏覽(35)
  • Spring Cloud Alibaba【什么是Nacos、Nacos Server下載安裝 、Docker安裝Nacos Server服務、微服務聚合父工程構建】(一)

    Spring Cloud Alibaba【什么是Nacos、Nacos Server下載安裝 、Docker安裝Nacos Server服務、微服務聚合父工程構建】(一)

    ?? 目錄 Spring Cloud Alibaba簡介 Spring Cloud Alibaba版本與兼容性? ?分布式服務治理_什么是Nacos 分布式服務治理_Nacos Server下載安裝? ?分布式服務治理_Docker安裝Nacos Server服務 分布式服務治理_微服務聚合父工程構建 ?什么是Spring Cloud Alibaba Spring Cloud Alibaba致力于提供微服務開發(fā)的

    2024年02月17日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包