網站首頁 編程語言 正文
1.服務治理介紹
1.一旦服務提供者地址變化,就需要手工修改代碼
2.一旦是多個服務提供者,無法實現負載均衡功能
3.一旦服務變得越來越多,人工維護調用關系困難
怎么樣來解決這些問題呢,通過注冊中心動態的實現服務治理。
2.Nacos的介紹
Nachos的全稱是“Not Another Completely Heuristic Operating System”,它是一個可修改和跟蹤的操作系統教學軟件。它給出了一個支持多線程和虛擬存儲的操作系統骨架,可讓學生在較短的時間內對操作系統中的基本原理和核心算法有一個全面和完整的了解。Nacos 致力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速 實現動態服務發現、服務配置、服務元數據及流量管理。 從上面的介紹就可以看出,nacos的作用就是一個注冊中心,用來管理注冊上來的各個微服務。
3.搭建Nacos環境
3.1安裝nacos
下載地址: https://github.com/alibaba/nacos/releases
下載zip格式的安裝包,然后進行解壓縮操作
3.2啟動nacos
#切換目錄
cd nacos/bin
#命令啟動
startup.cmd -m standalone
3.3訪問nacos
打開瀏覽器輸入http://localhost:8848/nacos,即可訪問服務, 默認密碼是nacos/nacos?
4.講商品微服務注冊到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的配置
#商品微服務 #指定nacos注冊中心的地址 ip:port spring.cloud.nacos.discovery.server-addr=localhost:8848 #指定服務器的名稱springcloud-product是我的服務器名你需要改成自己的 spring.application.name=springcloud-product #訂單微服務 #指定nacos注冊中心的地址 ip:port spring.cloud.nacos.discovery.server-addr=localhost:8848 #指定是否把該服務注冊到注冊中心 spring.cloud.nacos.discovery.register-enabled=false #指定服務器的名稱 spring.application.name=springcloud-order
4.3查看訂單微服務和商品微服務是否注冊到nacos注冊中心
5.在Controller中修改代碼
@Autowired
private DiscoveryClient discoveryClient;
List<ServiceInstance> instances = discoveryClient.getInstances("springcloud-product");
//需要設置訂單對象中商品的信息
//商品操作都在商品微服務---訂單微服務遠程調用商品微服務即可拿到商品信息,遠程調用:http協議的restFul風格調用適合微服務,基于TCP協議的RPC調用適合SOA分布式
//一定采用的為http協議:(1)自己寫代碼完成http調用【httpclient】微信支付---適合調用第三方網址。(2) spring提高了一個工具類RestTemplate,該類也是基于http協議的
ServiceInstance serviceInstance = instances.get(new Random().nextInt(instances.size()));
Product product = restTemplate.getForObject(serviceInstance.getUri()+"/product/findById/" + pid, Product.class);
5.1觀察nacos的控制面板中是否有注冊上來的訂單微服務,然后通過訪問消費者服務驗證調用是否成功
原文鏈接:https://blog.csdn.net/JAVA_SR/article/details/126592144
相關推薦
- 2023-05-31 Pandas.DataFrame刪除指定行和列(drop)的實現_python
- 2022-06-28 python神經網絡學習使用Keras進行回歸運算_python
- 2023-07-04 Spring中@Transactional注解事務傳播行為propagation參數說明
- 2022-11-09 PostgreSQL?HOT與PHOT有哪些區別_PostgreSQL
- 2022-05-31 jQuery實現側邊導航欄及滑動電梯效果(仿淘寶)_jquery
- 2022-05-11 spring cloud alibaba nacos搭建最小可運行微服務
- 2023-07-26 webpack提供構建速度之打包開啟多進程(thead)
- 2022-07-29 Golang的鎖機制與使用技巧小結_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支