Spring Cloud之注冊中心Nacos的使用詳解
Naacos
Nacos是Spring Cloud Alibaba的組件, Spring Cloud Alibaba遵循Spring Cloud中定義的服務注冊, 服務發(fā)現(xiàn)規(guī)范. 因此使?Nacos和使?Eureka對于微服務來說,并沒有太?區(qū)別.
主要差異在于:
• Eureka需要??搭建?個服務, Nacos不???搭建服務, 組件已經(jīng)準備好了, 只需啟動即可.
• 對應依賴和配置不同
服務注冊/服務發(fā)現(xiàn)
Nacos的服務注冊和服務發(fā)現(xiàn)代碼?樣。
引?Spring Cloud Alibaba依賴
在??程的pom?件中的 <dependencyManagement> 中引?Spring Cloud Alibaba的依賴:
<properties>
<spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>注意: Spring Boot 和Spring Cloud的版本是有?定對應關系的. Spring Cloud Alibaba也遵循
Spring Cloud 的標準, 在引?依賴時, ?定要確認各個版本的對應關系.
Spring Cloud Alibaba 和Spring Cloud版本對應關系, 參考官??檔:-》鏈接
版本在?定范圍內(nèi)可以?由選擇.

引入Nacos依賴
在order-service和product-service中引?nacos依賴:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>引入Load Balance依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>配置Nacos地址
| 配置項 | Key | 默認值 | 說明 |
| 服務端地址 | spring.cloud.nacos.discovery. server-addr | 無 | Nacos Server 啟動監(jiān)聽的ip地址和端? |
spring:
application:
name: product-service
cloud:
nacos:
discovery:
server-addr: 47.98.109.138:8848服務端調(diào)用
1. 修改IP為項?名
package order.service;
import order.mapper.OrderMapper;
import order.model.OrderInfo;
import order.model.ProductInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public OrderInfo selectOrderById(Integer orderId){
OrderInfo orderInfo = orderMapper.selectOrderById(orderId);
String url = "http://product-service/product/"+orderInfo.getProductId();
ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);
orderInfo.setProductInfo(productInfo);
return orderInfo;
}
}2. 為restTemplate添加負載均衡注解 @LoadBalanced
package order.config;
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 BeanConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}啟動服務
啟動兩個服務, 觀察Nacos的管理界?, 發(fā)現(xiàn)order-service 和product-service 都注冊在Nacos上了。

測試負載均衡

多次訪問“http://127.0.0.1:8080/order/1”,可以看到,每個服務實例接受的請求數(shù)量都差不多:



到此這篇關于Spring Cloud之注冊中心之Nacos的使用的文章就介紹到這了,更多相關Spring Cloud注冊中心Nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Spring?Cloud?Eureka服務注冊中心入門流程分析
- SpringBoot項目改為SpringCloud項目使用nacos作為注冊中心的方法
- Java之SpringCloud nocos注冊中心講解
- SpringCloud使用Zookeeper作為注冊中心
- 5分鐘搭建SpringCloud Eureka服務注冊中心的實現(xiàn)
- 詳解SpringCloud使用Consul做注冊中心
- SpringCloud服務實現(xiàn)同時使用eureka和nacos方法
- SpringCloud使用Nacos保存和讀取變量的配置方法
- 解決nacos升級spring cloud 2020.0無法使用bootstrap.yml的問題
- SpringCloud集成Nacos的使用小結
相關文章
詳解spring applicationContext.xml 配置文件
本篇文章主要介紹了詳解spring applicationContext.xml 配置文件 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
純Java類配置與@Configuration實戰(zhàn)指南
本文介紹@Configuration的核心用法,實戰(zhàn)@Bean定義Bean、@ComponentScan掃描組件、@Import組合配置類,帶大家體驗“無XML”的Spring配置新方式,感興趣的朋友跟隨小編一起看看吧2025-09-09
spring security的BCryptPasswordEncoder加密和對密碼驗證的原理分析
文章介紹了加密算法和hash算法的基本概念,以及BCryptPasswordEncoder加密和解密的原理,加密算法是可逆的,需要加鹽以保證安全性,BCryptPasswordEncoder通過生成鹽值并在加密和解密過程中使用,確保相同的明文每次加密結果不同,從而提高安全性2024-11-11
springmvc使用JSR-303進行數(shù)據(jù)校驗實例
本篇文章主要介紹了詳解springmvc使用JSR-303進行數(shù)據(jù)校驗,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02

