網(wǎng)站首頁 編程語言 正文
1.服務(wù)治理介紹
1.一旦服務(wù)提供者地址變化,就需要手工修改代碼
2.一旦是多個服務(wù)提供者,無法實(shí)現(xiàn)負(fù)載均衡功能
3.一旦服務(wù)變得越來越多,人工維護(hù)調(diào)用關(guān)系困難
怎么樣來解決這些問題呢,通過注冊中心動態(tài)的實(shí)現(xiàn)服務(wù)治理。
2.Nacos的介紹
Nachos的全稱是“Not Another Completely Heuristic Operating System”,它是一個可修改和跟蹤的操作系統(tǒng)教學(xué)軟件。它給出了一個支持多線程和虛擬存儲的操作系統(tǒng)骨架,可讓學(xué)生在較短的時間內(nèi)對操作系統(tǒng)中的基本原理和核心算法有一個全面和完整的了解。Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡單易用的特性集,幫助您快速 實(shí)現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。 從上面的介紹就可以看出,nacos的作用就是一個注冊中心,用來管理注冊上來的各個微服務(wù)。
3.搭建Nacos環(huán)境
3.1安裝nacos
下載地址: https://github.com/alibaba/nacos/releases
下載zip格式的安裝包,然后進(jìn)行解壓縮操作
3.2啟動nacos
#切換目錄
cd nacos/bin
#命令啟動
startup.cmd -m standalone
3.3訪問nacos
打開瀏覽器輸入http://localhost:8848/nacos,即可訪問服務(wù), 默認(rèn)密碼是nacos/nacos?
4.講商品微服務(wù)注冊到nacos注冊中心
4.1在pom.xml文件中引入nacos的依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
4.2在application.yml添加nacos的配置
#商品微服務(wù) #指定nacos注冊中心的地址 ip:port spring.cloud.nacos.discovery.server-addr=localhost:8848 #指定服務(wù)器的名稱springcloud-product是我的服務(wù)器名你需要改成自己的 spring.application.name=springcloud-product #訂單微服務(wù) #指定nacos注冊中心的地址 ip:port spring.cloud.nacos.discovery.server-addr=localhost:8848 #指定是否把該服務(wù)注冊到注冊中心 spring.cloud.nacos.discovery.register-enabled=false #指定服務(wù)器的名稱 spring.application.name=springcloud-order
4.3查看訂單微服務(wù)和商品微服務(wù)是否注冊到nacos注冊中心
5.在Controller中修改代碼
@Autowired
private DiscoveryClient discoveryClient;
List<ServiceInstance> instances = discoveryClient.getInstances("springcloud-product");
//需要設(shè)置訂單對象中商品的信息
//商品操作都在商品微服務(wù)---訂單微服務(wù)遠(yuǎn)程調(diào)用商品微服務(wù)即可拿到商品信息,遠(yuǎn)程調(diào)用:http協(xié)議的restFul風(fēng)格調(diào)用適合微服務(wù),基于TCP協(xié)議的RPC調(diào)用適合SOA分布式
//一定采用的為http協(xié)議:(1)自己寫代碼完成http調(diào)用【httpclient】微信支付---適合調(diào)用第三方網(wǎng)址。(2) spring提高了一個工具類RestTemplate,該類也是基于http協(xié)議的
ServiceInstance serviceInstance = instances.get(new Random().nextInt(instances.size()));
Product product = restTemplate.getForObject(serviceInstance.getUri()+"/product/findById/" + pid, Product.class);
5.1觀察nacos的控制面板中是否有注冊上來的訂單微服務(wù),然后通過訪問消費(fèi)者服務(wù)驗(yàn)證調(diào)用是否成功
原文鏈接:https://blog.csdn.net/JAVA_SR/article/details/126592144
相關(guān)推薦
- 2022-12-29 Kotlin使用滾動控件RecyclerView實(shí)例教程_Android
- 2022-08-02 C#如何Task執(zhí)行任務(wù),等待任務(wù)完成_C#教程
- 2023-02-09 C++?類模板與成員函數(shù)模板示例解析_C 語言
- 2022-01-10 解決遮罩下方元素禁止?jié)L動
- 2022-03-06 SQLServer批量插入數(shù)據(jù)的三種方式及性能對比_C#教程
- 2022-07-23 Python代碼實(shí)現(xiàn)雙鏈表_python
- 2022-10-17 React報錯信息之Expected?an?assignment?or?function?call?
- 2022-02-24 Promise.all() 函數(shù)的常用場景
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支