一袱耽、安裝Nacos
(1)下載地址:https://github.com/alibaba/nacos/releases
(2)配置端口、啟動
在解壓文件中conf/application.properties設(shè)置端口默認(rèn)是8848
雙擊bin/startup.cmd啟動服務(wù)
命令行啟動:在bin文件下開啟黑窗口startup.cmd -m standalone
二欣孤、注冊服務(wù)到Nacos
1凯旋、在cloud-demo父工程添加依賴
<!--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呀潭、添加Nacos客戶端依賴
<!-- nacos客戶端依賴包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3、在application.yml中添加Nacos地址
server:
port: 8088
spring:
application:
name: orderservice
cloud:
nacos:
server-addr: localhost:8848 # nacos服務(wù)地址
4至非、服務(wù)拉取
(1)url訪問路徑钠署,用服務(wù)名稱代替ip、端口
String url = "http://orderservice/user/" + user.getOrderId();
(2)在啟動類中的RestTemplate添加負(fù)載均衡注解
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
三荒椭、Ribbon負(fù)載均衡
(1)Ribbon負(fù)載均衡規(guī)則
規(guī)則接口是IRule谐鼎。默認(rèn)實現(xiàn)是ZoneAvoidanceRule,根據(jù)zone選擇服務(wù)列表趣惠,然后輪詢
(2)負(fù)載均衡自定義兩種方式
配置靈活狸棍,但修改時需要重新打包發(fā)布
@Bean
public IRule randomRule() {
return new RandomRule();
}
直觀、方便無需重新打包發(fā)布信卡,但是無法做全局配置
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負(fù)載均衡規(guī)則
(3)Ribbon默認(rèn)加載方式是懶加載隔缀。更改加載方式
ribbon:
eager-load:
enabled: true # 開啟饑餓加載
clients: # 指定饑餓加載的服務(wù)名稱
- userservice
四题造、Nacos分級存儲模型
1傍菇、在application.yml中設(shè)置集群屬性
cloud:
nacos: # nacos的地址信息
server-addr: localhost:8848
discovery:
cluster-name: HZ #設(shè)置集群
2、修改負(fù)載均衡規(guī)則界赔,本地集群優(yōu)先選擇相互訪問
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負(fù)載均衡規(guī)則
3丢习、根據(jù)權(quán)重負(fù)載均衡
編輯修改權(quán)重設(shè)置牵触,設(shè)置為0不會被訪問
4、環(huán)境隔離
(1)在命名空間設(shè)置新建命名空間咐低,在application.yml中設(shè)置命名空間填寫ID(不同環(huán)境不能相互訪問)
cloud:
nacos: # nacos的地址信息
server-addr: localhost:8848
discovery:
cluster-name: HZ #設(shè)置集群
namespace: 4d22cecf-3eba-400d-a2d1-f5a359f3f0eb #dev環(huán)境
五揽思、Nacos配置管理
1、統(tǒng)一配置管理(配置熱更新)
配置管理——配置列表——點擊加號——新建配置信息
2见擦、獲取配置信息
引入nacos配置管理依賴
<!--nacos的配置管理依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
新建bootstrap.yml文件
spring:
application:
name: orderservice #服務(wù)名稱
profiles:
active: dev # 環(huán)境
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
file-extension: yaml # 文件后綴名
服務(wù)的讀取
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
public void setDateformat(String dateformat) {
this.dateformat = dateformat;
}
public String getDateformat() {
return dateformat;
}
}
3钉汗、多環(huán)境配置共享
創(chuàng)建配置信息不添加環(huán)境名稱