1.【Spring Cloud Alibaba】服務發現-Nacos
一、服務的提供者與服務的消費者
二、服務發現原理
如果使用者中心地址發生變化怎麼辦?
服務的消費者總能找到服務的提供者的這種原理,即服務發現原理。
三、什麼是Nacos?
Nacos文件地址請檢視,引入Nacos,架構的演進
四、搭建Nacos Server
1、下載Nacos 下載地址
在spring-cloud-alibaba-dependencies下按住Ctrl+滑鼠左鍵,檢視Nacos元件相關的版本。
<nacos.client.version>1.0.0</nacos.client.version> <nacos.config.version>0.8.0</nacos.config.version>
nacos-server-1.0.1是相容nacos-server-1.0.0的,所以我這裡選用nacos-server-1.0.1版本。
2、搭建Nacos Server
Nacos 快速開始
五、將應用註冊到Nacos
1、將user-content註冊到Nacos
pom.xml新增
<!--spring-cloud-starter-{spring cloud子專案名稱}-[{模組名稱}]--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
application.yml新增
spring:
cloud:
nacos:
discovery:
#指定nacos server的地址
server-addr: localhost:8848
application:
# 服務名稱儘量用-,不用要_,更不要用特殊字元
name: user-center
啟動服務
在此之前,你應該先啟動nacos-server
登入檢視註冊的服務
2、將content-center註冊到Nacos
按照user-center將content-center註冊到Nacos
在此重新整理頁面,我們可以看到
3、在content-center下編寫測試程式碼
在TestController下新增如下程式碼
@Autowired
private DiscoveryClient discoveryClient;
/**
* 測試:服務發現,證明內容中心可以查詢到使用者中心
* @return 使用者中心所有地址的詳細資訊
*/
@GetMapping("/test2")
public List<ServiceInstance> getInstances(){
// 查詢指定服務所有例項的資訊
return this.discoveryClient.getInstances("user-center");
}
在瀏覽器下進行測試
開啟使用者中心多個例項進行測試
思考?如果將使用者中心斷開,再次重新整理瀏覽器觀察變化
六、為內容中心引入服務發現
修改ShareService
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ShareService {
private final ShareMapper shareMapper;
private final RestTemplate restTemplate;
private final DiscoveryClient discoveryClient;
public ShareDTO findById(Integer id){
// 獲取分享的詳情
Share share = this.shareMapper.selectByPrimaryKey(id);
// 釋出人id
Integer userId = share.getUserId();
// 獲取使用者中心所有例項資訊
List<ServiceInstance> instances = discoveryClient.getInstances("user-center");
String targetURL = instances.stream()
// 資料變換
.map(instance-> instance.getUri().toString() + "/users/{id}")
.findFirst()
.orElseThrow(()-> new IllegalArgumentException("當前沒有例項"));
log.info("請求的目標地址:{}",targetURL);
// 怎麼呼叫使用者微服務的users/{userId}
UserDTO userDTO = this.restTemplate.getForObject(
targetURL,
UserDTO.class,
userId
);
// 訊息的裝配
ShareDTO shareDTO = new ShareDTO();
BeanUtils.copyProperties(share,shareDTO);
shareDTO.setWxNickname(userDTO.getWxNickname());
return shareDTO;
}
}
測試
七、Nacos服務發現的領域模型
- Namespace:實現隔離,預設public
- Group:不同服務可以分到一個組,預設DEFAULT_GROUP
- Service:微服務
- Cluster:對指定微服務的一個虛擬劃分,預設DEFAULT
- Instance:微服務例項
八、Nacos元資料
官方文件說明
元資料的作用
- 提供描述資訊
- 讓微服務呼叫更加靈活
如何為微服務設定元資料?
- 控制檯方式指定
- 配置檔案指定
相關推薦
1.【Spring Cloud Alibaba】服務發現-Nacos
一、服務的提供者與服務的消費者 二、服務發現原理 如果使用者中心地址發生變化怎麼辦? 服務的消費者總能找到服務的提供者的這種原理,即服務發現原理。 三、什麼是Nacos? Nacos文件地址請檢視,引入Nacos,架構的演進 四、搭建Nacos Server 1、下載Nacos 下載地址 在spr
3.【Spring Cloud Alibaba】宣告式HTTP客戶端-Feign
使用Feign實現遠端HTTP呼叫 什麼是Feign Feign是Netflix開源的宣告式HTTP客戶端 GitHub地址:https://github.com/openfeign/feign 實現 pom.xml <dependency> <groupId>org.sp
Spring Cloud Alibaba基礎教程:Nacos服務發現與配置管理
隨著微服務概念的流行,越來越多的公司採用Spring Cloud全家桶構建微服務系統,實現業務的快速迭代。Spring Cloud提供了快速構建分散式微服務常用元件,包括Spring Cloud Eureka、Spring Cloud Ribbon、Spring Cloud Hystrix、Spring Cl
Spring Cloud Eureka 5 (服務發現與消費-簡單的robbin使用)
boot ng- clas hello enabled 中心 相同 service 服務註冊 通過上述介紹,我們已經有了服務註冊中心和服務提供者 下面我們來嘗試構建一個服務的消費者 它要完成兩個功能,發現服務和消費服務,其中發現服務由eureka客戶端完成,消費服務由rib
Spring Cloud Config基於服務發現引用公共檔案
Spring Cloud 的配置檔案是bootstrap或者application兩個,如果服務配置過多那麼檔案內容肯定較多,在普通的spring 專案中都是獨立出來一個檔案用於標註不同的需求內容,例如資料庫,redis等,然後再import匯入進來就可以使用,在Spring Cloud
【Spring Cloud 系列】:構建Eureka Client 專案
一. 構建 Eureka Client 端 1. 首先還是需要先看看官方文件是如何說明的,從文件中瞭解到,需要為專案引入Eureka-client 相關jar包 <dependency> <groupId>org.springframew
Spring系列學習之Spring Cloud Netflix微服務發現容錯及路由客戶端負載均衡
英文原文:https://spring.io/projects/spring-cloud-netflix 目錄 概述 特性 入門 快速開始 學習 文件 示例 概述 Spring Cloud Netflix通過自動配置和Spring環境以及其他Spring程
Spring Cloud與微服務學習總結(1)——Spring Cloud及微服務入門
一、Spring Cloud是什麼鬼? Spring Cloud為開發者提供了快速建立一些常見的模式在分散式系統的工具(如配置管理、服務發現、斷路器、智慧路由、微代理,控制匯流排,一次性令牌,全球鎖,領
七牛雲物件儲存客戶端直傳前後端實現 【spring cloud + vue】
兩種檔案上傳的方式 服務端傳輸 客戶端直傳 兩種傳輸方式比較 服務端傳輸,所有客戶端的上傳請求需傳送至業務伺服器,再由業務伺服器轉發至檔案伺服器,上傳結果的返回同樣需要業務伺服器的轉發,這樣的操作保證了傳輸的安全,但卻大大提升了業務
Spring Cloud與Consul服務發現
Consul服務發現 Consul是一個開源的服務註冊發現工具,採用Go語言開發,支援多資料中心分散式高可用的服務發現和配置共享,廣泛應用在大規模分散式系統中。 Spring Cloud原生支援使用Consul做服務註冊發現,類似Eureka、ZooKeep
Spring Cloud Alibaba | Sentinel: 服務限流基礎篇
目錄 Spring Cloud Alibaba | Sentinel: 服務限流基礎篇 1. 簡介 2. 定義資源 2.1 主流框架的預設適配 2.2 丟擲異常的方式定義資源
spring-cloud-kubernetes的服務發現和輪詢實戰(含熔斷)
本文是《spring-cloud-kubernetes實戰系列》的第四篇,主要內容是在kubernetes上部署兩個應用:Web-Service和Account-Service,通過spring-cloud-kubernetes提供的註冊發現能力,實現Web-Service呼叫Account-Service提
Spring Cloud Alibaba | 微服務分散式事務之Seata
Spring Cloud Alibaba | 微服務分散式事務之Seata 本篇實戰所使用Spring有關版本: SpringBoot:2.1.7.RELEASE Spring Cloud:Greenwich.SR2 Spring CLoud Alibaba:2.1.0.RELEASE 1. 概述 在構建
Spring Cloud Alibaba微服務生態的基礎實踐
[toc] ## 一、背景 - 身為Java程式設計師,微服務是必須要掌握的一種架構。Spring Cloud作為提供微服務架構的完整技術生態鏈,給我們提供了非常多的框架與元件。其中的重要成員Spring Cloud Netflix也形成了一系列的技術棧:包括服務註冊與發現(Eureka),斷路器(Hystr
Spring Cloud Alibaba基礎教程:Nacos配置的加載規則詳解
方案 用戶 per 回顧 應用名 增加 我們 pla 基礎 前情回顧: 《Spring Cloud Alibaba基礎教程:使用Nacos實現服務註冊與發現》 《Spring Cloud Alibaba基礎教程:支持的幾種服務消費方式(RestTemplate、WebCl
Spring Cloud Alibaba基礎教程:Nacos配置的多文件加載與共享配置
space info master 分享 fresh 覆蓋 aid hle 過程 前情回顧: 《Spring Cloud Alibaba基礎教程:使用Nacos實現服務註冊與發現》 《Spring Cloud Alibaba基礎教程:支持的幾種服務消費方式》 《Sprin
Spring Cloud Alibaba系列教程-01-Nacos安裝與啟停
浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>
Spring Cloud 一:服務註冊與發現(Eureka)【Dalston版】
什麽是 pom 日誌 操作 prop ng- 通過 決策 target Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局
【Spring Cloud】第一篇 Service Discovery | 服務發現
Eureka 提供服務的註冊,服務可以通過註冊到Eureka然後被其他應用呼叫。 看到Spring Cloud 的文件裡面是先講的是Spring Cloud Config ,為了方便,或者說參考其他大佬的教程,我也會把Config放到後面寫。 word &
Spring Cloud 八:服務容錯保護(Hystrix斷路器)【Dalston版】
sta 什麽 star 根據 .com 一次 href 進行 響應 斷路器 斷路器模式源於Martin Fowler的Circuit Breaker一文。“斷路器”本身是一種開關裝置,用於在電路上保護線路過載,當線路中有電器發生短路時,“斷路器”能夠及時的切斷故障電路,防止