日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Nacos注冊中心有幾種調用方式?

來源: 責編: 時間:2023-10-30 17:24:45 329觀看
導讀Spring Cloud Alibaba Nacos 作為近幾年最熱門的注冊中心和配置中心,也被國內無數公司所使用,今天我們就來看下 Nacos 作為注冊中心時,調用它的接口有幾種方式?1、什么是注冊中心?注冊中心(Registry)是一種用于服務發現和服

dw628資訊網——每日最新資訊28at.com

Spring Cloud Alibaba Nacos 作為近幾年最熱門的注冊中心和配置中心,也被國內無數公司所使用,今天我們就來看下 Nacos 作為注冊中心時,調用它的接口有幾種方式?dw628資訊網——每日最新資訊28at.com

1、什么是注冊中心?

注冊中心(Registry)是一種用于服務發現和服務注冊的分布式系統組件。它是在微服務架構中起關鍵作用的一部分,用于管理和維護服務實例的信息以及它們的狀態。dw628資訊網——每日最新資訊28at.com

它的執行流程如下圖所示:dw628資訊網——每日最新資訊28at.com

dw628資訊網——每日最新資訊28at.com

注冊中心充當了服務之間的中介和協調者,它的主要功能有以下這些:dw628資訊網——每日最新資訊28at.com

  • 服務注冊:服務提供者將自己的服務實例信息(例如 IP 地址、端口號、服務名稱等)注冊到注冊中心。通過注冊中心,服務提供者可以將自己的存在告知其他服務。
  • 服務發現:服務消費者通過向注冊中心查詢服務信息,獲取可用的服務實例列表。通過注冊中心,服務消費者可以找到并連接到需要調用的服務。
  • 健康檢查與負載均衡:注冊中心可以定期檢查注冊的服務實例的健康狀態,并從可用實例中進行負載均衡,確保請求可以被正確地轉發到可用的服務實例。
  • 動態擴容與縮容:在注冊中心中注冊的服務實例信息可以方便地進行動態的增加和減少。當有新的服務實例上線時,可以自動地將其注冊到注冊中心。當服務實例下線時,注冊中心會將其從服務列表中刪除。

使用注冊中心有以下優勢和好處:dw628資訊網——每日最新資訊28at.com

  • 服務自動發現和負載均衡:服務消費者無需手動配置目標服務的地址,而是通過注冊中心動態獲取可用的服務實例,并通過負載均衡算法選擇合適的實例進行調用。
  • 服務彈性和可擴展性:新的服務實例可以動態注冊,并在發生故障或需要擴展時快速提供更多的實例,從而提供更高的服務彈性和可擴展性。
  • 中心化管理和監控:注冊中心提供了中心化的服務管理和監控功能,可以對服務實例的狀態、健康狀況和流量等進行監控和管理。
  • 降低耦合和提高靈活性:服務間的通信不再直接依賴硬編碼的地址,而是通過注冊中心進行解耦,使得服務的部署和變更更加靈活和可控。

常見的注冊中心包括 ZooKeeper、Eureka、Nacos 等。這些注冊中心可以作為微服務架構中的核心組件,用于實現服務的自動發現、負載均衡和動態擴容等功能。dw628資訊網——每日最新資訊28at.com

2、方法概述

當 Nacos 中注冊了 Restful 接口時(一種軟件架構風格,它是基于標準的 HTTP 協議和 URI 的一組約束和原則),其調用方式主要有以下兩種:dw628資訊網——每日最新資訊28at.com

  • 使用 RestTemplate + Spring Cloud LoadBalancer。
  • 使用 OpenFeign + Spring Cloud LoadBalancer。

3、RestTemplate+LoadBalancer調用

此方案的實現有以下 3 個關鍵步驟:dw628資訊網——每日最新資訊28at.com

  • 添加依賴:nacos + loadbalancer。
  • 設置配置文件。
  • 編寫調用代碼。

具體實現如下。dw628資訊網——每日最新資訊28at.com

(1)添加依賴

<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-loadbalancer</artifactId></dependency>

(2)設置配置文件

spring:  application:    name: nacos-discovery-business  cloud:    nacos:      discovery:        server-addr: localhost:8848        username: nacos        password: nacos        register-enabled: false

(3)編寫調用代碼

此步驟又分為以下兩步:dw628資訊網——每日最新資訊28at.com

  1. 給 RestTemplate 增加 LoadBalanced 支持。
  2. 使用 RestTemplate 調用接口。

RestTemplate添加LoadBalanced

在 Spring Boot 啟動類上添加“@EnableDiscoveryClient”注解,并使用“@LoadBalanced”注解替換 IoC 容器中的 RestTemplate,具體實現代碼如下:dw628資訊網——每日最新資訊28at.com

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.web.client.RestTemplate;@SpringBootApplication@EnableDiscoveryClientpublic class BusinessApplication {    @LoadBalanced    @Bean    public RestTemplate restTemplate() {        return new RestTemplate();    }    public static void main(String[] args) {        SpringApplication.run(BusinessApplication.class, args);    }}

使用RestTemplate

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;@RestController@RequestMapping("/business")public class BusinessController2 {    @Autowired    private RestTemplate restTemplate;    @RequestMapping("/getnamebyid")    public String getNameById(Integer id){        return restTemplate.getForObject("http://nacos-discovery-demo/user/getnamebyid?id="+id,                String.class);    }}

4、OpenFeign+LoadBalancer調用

此步驟又分為以下 5 步:dw628資訊網——每日最新資訊28at.com

  • 添加依賴:nacos + openfeign + loadbalancer
  • 設置配置文件
  • 開啟 openfeign 支持
  • 編寫 service 代碼
  • 調用 service 代碼

具體實現如下。dw628資訊網——每日最新資訊28at.com

(1)添加依賴

<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><dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>

(2)設置配置文件

spring:  application:    name: nacos-discovery-business  cloud:    nacos:      discovery:        server-addr: localhost:8848        username: nacos        password: nacos        register-enabled: false

(3)開啟OpenFeign

在 Spring Boot 啟動類上添加 @EnableFeignClients 注解。dw628資訊網——每日最新資訊28at.com

(4)編寫Service

import org.springframework.cloud.openfeign.FeignClient;import org.springframework.stereotype.Service;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;@Service@FeignClient(name = "nacos-producer") // name 為生產者的服務名public interface UserService {    @RequestMapping("/user/getinfo") // 調用生產者的接口    String getInfo(@RequestParam String name);}

(5)調用Service

import com.example.consumer.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class OrderController {    @Autowired    private UserService userService;    @RequestMapping("/order")    public String getOrder(@RequestParam String name){        return userService.getInfo(name);    }}

5、獲取本文源碼

因平臺不能上傳附件,所以想要獲取本文完整源碼,請聯系我:gg_stone,備注:Nacos 源碼,不然不予通過。dw628資訊網——每日最新資訊28at.com

6、版本說明

本文案例基于以下版本:dw628資訊網——每日最新資訊28at.com

  • JDK 17
  • Spring Boot 3.x
  • Spring Cloud Alibaba 2022.0.0.0
  • Nacos 2.2.3

7、小結

注冊中心作為微服務中不可或缺的重要組件,在微服務中充當著中介和協調者的作用。而 Nacos 作為近幾年來,國內最熱門的注冊中心,其 Restf 接口調用有兩種方式:RestTemplate + LoadBalancer 和 OpenFeign + LoadBalancer,開發者可以根據自己的實際需求,選擇相應的調用方式。dw628資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-15888-0.htmlNacos注冊中心有幾種調用方式?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python 制作微博抓取 GUI 程序

下一篇: 利用Docker容器化構建可移植的分布式應用程序

標簽:
  • 熱門焦點
  • 之家push系統迭代之路

    前言在這個信息爆炸的互聯網時代,能夠及時準確獲取信息是當今社會要解決的關鍵問題之一。隨著之家用戶體量和內容規模的不斷增大,傳統的靠"主動拉"獲取信息的方式已不能滿足用
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 零售大模型“干中學”,攀爬數字化珠峰

    文/侯煜編輯/cc來源/華爾街科技眼對于絕大多數登山愛好者而言,攀爬珠穆朗瑪峰可謂終極目標。攀登珠峰的商業路線有兩條,一是尼泊爾境內的南坡路線,一是中國境內的北坡路線。相
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、&ldquo;Ringdoll戒之人形&rdquo;淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財經(niudaocaijing)7月5日,企鵝FM發布官方公告稱由于業務調整,將于9月6日正式停止運營,這意味著騰訊音樂長音頻業務走向消亡。騰訊在長音頻領域還在摸索。為
  • 一條抖音4億人圍觀 ! 這家MCN比無憂傳媒還野

    作者:Hiu 來源:互聯網品牌官01 擦邊少女空降熱搜,幕后推手曝光被網友譽為&ldquo;純欲天花板&rdquo;的女網紅井川里予,近期因為一組哥特風照片登上熱搜,引發了一場互聯網世界關于
  • iQOO Neo8 Pro搶先上架:首發天璣9200+ 安卓性能之王

    經過了一段時間的密集爆料,昨日iQOO官方如期對外宣布:將于5月23日推出全新的iQOO Neo8系列新品,官方稱這是一款擁有旗艦級性能調校的作品。隨著發布時
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
  • 電博會與軟博會實現"線下+云端"的雙線融合

    在本次“電博會”與“軟博會”雙展會利好條件的加持下,既可以發揮展會拉動人流、信息流、資金流實現快速交互流動的作用,繼而推動區域經濟良性發展;又可以聚
Top 主站蜘蛛池模板: 衢州市| 林甸县| 元阳县| 隆尧县| 英山县| 河曲县| 高州市| 紫阳县| 湘乡市| 新密市| 扎兰屯市| 双桥区| 德清县| 灵石县| 湘潭市| 奉贤区| 黄陵县| 连云港市| 岚皋县| 五台县| 阳曲县| 万州区| 上饶县| 遵义县| 昌都县| 房产| 盖州市| 龙胜| 额济纳旗| 河西区| 天等县| 古浪县| 广南县| 江城| 嘉黎县| 新宁县| 鹤岗市| 鹿泉市| 岳阳县| 囊谦县| 南漳县|