網站首頁 編程語言 正文
Nacos服務搭建
在nacos/bin目錄中,輸入命令啟動Nacos:
startup.cmd -m standalone
1.在cloud-demo父工程中添加spring-
<!--nacos的管理依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
2.注釋掉order-service和user-service中原有的eureka依賴
3.添加nacos的客戶端依賴
<!-- nacos客戶端依賴包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
4.修改user-service和order-service中的application.yml文件,注釋掉eureka地址,添加nacos地址
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服務端地址
Nacos服務分級存儲模型
Nacos-分級存儲就是nacos的集群通過設置集群
① 服務集群屬性
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服務端地址
discovery:
cluster-name: HZ # 配置集群名稱,也就是機房位置, 例如 HZ 杭州
Nacos-根據集群負載均衡
NacosRule負載均衡策略
①優先選擇同級群服務實例列表
②本地集群找不到提供者才去找其他的集群,并會報警告
③確定可用實例列表后,在采用隨機負載均衡挑選實例
1.修改order-service中的application.yml,設置集群為HZ:
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服務端地址
discovery:
cluster-name: HZ # 配置集群名稱,也就是機房位置
2.然后在order-service中設置負載均衡的IRule為NacosRule,這個規則優先會尋找與自己同集群的服務:
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負載均衡規則
Nacos-根據權重負載均衡
實際部署中會出現這樣的場景:
服務器設置性能有差異,部分實例所在的機器性能較好,另一些較差,我們希望性能好的機器承擔更多的用戶請求
為了解決上述問題Nacos提供了權重配置來控制訪問頻率,權重越大則訪問頻率越高
Nacos控制臺可以設置實例的權重值,0-1之間
同級群內的多個實例,權重越高被訪問的頻率越高
權重值設置為0則完全不會被訪問
Nacos-環境隔離-namespace
nacos后臺管理頁面新建命名空間,項目代碼配置命名空間
cloud:
nacos:
server-addr: localhost:8848 #nacos 服務地址
discovery:
cluster-name: BJ
namespace: d73b7e1e-c568-43c7-a0fa-dd6a11fcfefb # dev 環境的命名空間
①namespace用來做環境隔離
②每個namespace都是唯一的id
③不同的namespace下的服務不可以見
Nacos與Eureka的對比
共同點:
①都支持服務的注冊和拉取
②都支持服務提供者心跳方式提供健康監測
不同點:
①Nacos支持服務端主動監檢測提供者狀態,臨時實例采用心跳模式,非臨時實例采用主動檢測模式.
②臨時實例心跳不正常會被剔除,非臨時實例則不會被剔除
③Nacos支持服務列表變更的消息推送模式,服務列表更新及時
④Nacos集群默認采用AP方式,當集群眾中存在非臨時實例時,采用CP模式,;Eureka采用AP方式.
需要項目代碼及nacos安裝包 聯系博主.
原文鏈接:https://timefriends.blog.csdn.net/article/details/124677347
相關推薦
- 2022-05-19 聊聊Python代碼中if?__name__?==?‘__main__‘的作用是什么_python
- 2022-10-02 SpringBoot前端后端分離之Nginx服務器下載安裝過程_nginx
- 2022-04-21 Ubuntu16.04系統搭建.Net?Core開發環境_實用技巧
- 2022-07-04 Python繪制多因子柱狀圖的實現示例_python
- 2022-06-19 教你cmd?bat文件中調用另一個bat文件的方法_DOS/BAT
- 2022-11-17 React路由渲染方式與withRouter高階組件及自定義導航組件應用詳細介紹_React
- 2022-12-12 React?中state與props更新深入解析_React
- 2022-06-10 C++?STL?中的數值算法示例講解_C 語言
- 最近更新
-
- 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同步修改后的遠程分支