目錄
一、SpringCloud。
(1)認(rèn)識(shí)微服務(wù)。
(1.1)單體架構(gòu)與分布式架構(gòu)(微服務(wù))。
(1.2)微服務(wù)技術(shù)對(duì)比。
(1.3)SpringCloud。
(2)服務(wù)拆分及遠(yuǎn)程調(diào)用。
(2.1)服務(wù)拆分。
(2.2)遠(yuǎn)程調(diào)用。
(3)提供者與消費(fèi)者。
(4)Eureka注冊(cè)中心。
(4.1)Eureka的作用。?
(4.2)搭建注冊(cè)中心?。
(4.3)服務(wù)注冊(cè)。
(4.4)服務(wù)發(fā)現(xiàn)。
(4.5)Eureka注冊(cè)中心總結(jié)。
(5)Ribbon負(fù)載均衡。
(5.1)負(fù)載均衡流程。
(5.2)負(fù)載均衡策略。
(5.3)修改負(fù)載均衡規(guī)則(兩種方式)。
(5.4)饑餓加載(負(fù)載均衡默認(rèn):懶加載)。
(5.5)總結(jié)。
(6)Nacos注冊(cè)中心。
(6.1)安裝Nacos并登錄(windows版)。
(6.2)服務(wù)注冊(cè)(將服務(wù)注冊(cè)到nacos中)。
(6.3)Nacos服務(wù)分級(jí)存儲(chǔ)模型。
(6.4)服務(wù)集群屬性(為服務(wù)設(shè)置集群名稱(chēng))。
(6.5)根據(jù)集群負(fù)載均衡。
(6.6)根據(jù)權(quán)重負(fù)載均衡。
(6.7)Nacos環(huán)境隔離(根據(jù)namespace隔離)。
(6.8)臨時(shí)實(shí)例和非臨時(shí)實(shí)例。
(6.9)Nacos與Eureka的區(qū)別。
一、SpringCloud。
(1)認(rèn)識(shí)微服務(wù)。
(1.1)單體架構(gòu)與分布式架構(gòu)(微服務(wù))。
(1.2)微服務(wù)技術(shù)對(duì)比。
(1.3)SpringCloud。
(2)服務(wù)拆分及遠(yuǎn)程調(diào)用。
(2.1)服務(wù)拆分。
(2.2)遠(yuǎn)程調(diào)用。
(3)提供者與消費(fèi)者。
(4)Eureka注冊(cè)中心。
(4.1)Eureka的作用。?
(4.2)搭建注冊(cè)中心?。
eureka注冊(cè)中心服務(wù)端坐標(biāo):?
<dependency>
<!--eureka服務(wù)端-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
添加啟動(dòng)eureka的注解:
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
配置eureka的服務(wù)名稱(chēng)及服務(wù)地址(其實(shí)就是將eureka服務(wù)注冊(cè)到注冊(cè)中心):?
server:
port: 10086 # 服務(wù)端口
spring:
application:
name: eurekaserver # eureka的服務(wù)名稱(chēng)
eureka: # 如果啟動(dòng)這個(gè)微服務(wù)出現(xiàn)錯(cuò)誤(訪問(wèn)http://localhost:10086/發(fā)現(xiàn)這個(gè)沒(méi)有實(shí)例注冊(cè)到服務(wù)注冊(cè))
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
(4.3)服務(wù)注冊(cè)。
eureka注冊(cè)中心客戶端坐標(biāo):??
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
給服務(wù)起名字,并且將服務(wù)注冊(cè)到注冊(cè)中心:
當(dāng)服務(wù)實(shí)例向 Eureka 服務(wù)注冊(cè)中心注冊(cè)時(shí),也需要指定該注冊(cè)中心的根路徑/eureka。
如果您使用的是默認(rèn)的 Eureka 服務(wù)注冊(cè)中心,則應(yīng)該將注冊(cè) URL 設(shè)為 http://注冊(cè)中心的IP地址:注冊(cè)中心的端口號(hào)/eureka
。?
server:
port: 8080
spring:
application:
name: orderservice # order服務(wù)的服務(wù)名稱(chēng)
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka/
查看是否注冊(cè)到注冊(cè)中心:
http://localhost:10086/訪問(wèn):http://localhost:10086/
說(shuō)明:localhost為eureka的ip地址,而10086則為eureka的端口。
(4.4)服務(wù)發(fā)現(xiàn)。
//2.1:url地址 原本URL:String url = "http://localhost:8081/user/" + order.getUserId(); 注冊(cè)后的URL:String url = "http://userservice/user/" + order.getUserId();
注意:userservice是服務(wù)的名稱(chēng)。這是在4.3中定義的配置。
@LoadBalanced:使用負(fù)載均衡?
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
@LoadBalanced
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
(4.5)Eureka注冊(cè)中心總結(jié)。
(5)Ribbon負(fù)載均衡。
(5.1)負(fù)載均衡流程。
(5.2)負(fù)載均衡策略。
(5.3)修改負(fù)載均衡規(guī)則(兩種方式)。
代碼方式:全局配置,該服務(wù)遠(yuǎn)程訪問(wèn)其他服務(wù)都用這種策略。
配置方式: 局部配置,指定遠(yuǎn)程訪問(wèn)其他服務(wù),它的使用規(guī)則。(單個(gè)服務(wù))
userservice: #這個(gè)是服務(wù)名稱(chēng),沒(méi)有提示
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 負(fù)載均衡規(guī)則
(5.4)饑餓加載(負(fù)載均衡默認(rèn):懶加載)。
指定一個(gè)服務(wù): ribbon: eager-load: enabled: true # 開(kāi)啟饑餓加載 clients: userservice # 指定饑餓加載的服務(wù)名稱(chēng) 指定多個(gè)服務(wù): ribbon: eager-load: enabled: true # 開(kāi)啟饑餓加載 clients: # 指定饑餓加載的服務(wù)名稱(chēng)(指定服務(wù)超過(guò)一個(gè)時(shí)的寫(xiě)法) - userservice - myservice - youservice - orservice
(5.5)總結(jié)。
(6)Nacos注冊(cè)中心。
(6.1)安裝Nacos并登錄(windows版)。
Nacos是阿里巴巴的產(chǎn)品,現(xiàn)在是SpringCloud中的一個(gè)組件。相比Eureka功能更加豐富,在國(guó)內(nèi)受歡迎程度較高 。
在Nacos的GitHub頁(yè)面,提供有下載鏈接,可以下載編譯好的Nacos服務(wù)端或者源代碼:
GitHub主頁(yè):https://github.com/alibaba/nacos
GitHub的Release下載頁(yè):Releases · alibaba/nacos · GitHub
1、下載安裝包后,解壓就可以了。?
?打開(kāi)cmd命令行:進(jìn)入bin目錄啟動(dòng)nacos
?startup.cmd -m standalone
在瀏覽器輸入下面的地址進(jìn)行登錄nacos:賬戶與密碼默認(rèn)為nacos
http://127.0.0.1:8848/nacos
(6.2)服務(wù)注冊(cè)(將服務(wù)注冊(cè)到nacos中)。
注意:除了依賴和注冊(cè)到nacos的地址,其它跟eureka一樣使用(如負(fù)載均衡、服務(wù)發(fā)現(xiàn))
1、導(dǎo)入nacos依賴管理、導(dǎo)入nacos依賴(替代掉eureka)。
1.1先導(dǎo)入nacos依賴管理。
作用:寫(xiě)了這個(gè)之后,導(dǎo)入nacos依賴后不需要寫(xiě)版本(這里就是定義版本)?
<dependencyManagement>
<dependencies>
<!--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>
</dependencies>
</dependencyManagement>
1.2導(dǎo)入nacos依賴。
<!--nacos客戶端依賴包-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
?2、添加nacos注冊(cè)中心地址(替代掉eureka)。
作用:因?yàn)檫@個(gè)服務(wù)需要加到注冊(cè)中心,所以需要寫(xiě)注冊(cè)中心的地址。
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos服務(wù)地址
(6.3)Nacos服務(wù)分級(jí)存儲(chǔ)模型。
服務(wù)調(diào)用盡可能選擇本地集群的服務(wù)(根據(jù)集群負(fù)載均衡實(shí)現(xiàn)),跨集群調(diào)用延遲較高 本地集群不可訪問(wèn)時(shí),再去訪問(wèn)其它集群。
- 因此,在 Nacos 的服務(wù)分級(jí)模型中,(一級(jí) > 二級(jí) > 三級(jí))
- 第一級(jí)是微服務(wù) (如訂單服務(wù)) ;
- 第二級(jí)是集群 (如北京訂單服務(wù)集群、上海訂單服務(wù)集群等) ;
- 第三集是實(shí)例 (如杭州服務(wù)集群的 8081 端口實(shí)例、8082 端口實(shí)例等) 。
(6.4)服務(wù)集群屬性(為服務(wù)設(shè)置集群名稱(chēng))。
spring:
application:
name: userservice
cloud:
nacos:
server-addr: localhost:8848 # nacos服務(wù)地址
discovery:
cluster-name: HZ # 集群名稱(chēng),這里HZ代指杭州
(6.5)根據(jù)集群負(fù)載均衡。
(6.6)根據(jù)權(quán)重負(fù)載均衡。
注意:先找到集群的實(shí)例(使用集群規(guī)則),然后根據(jù)權(quán)重進(jìn)行負(fù)載均衡(與集群不沖突)?
權(quán)重值:設(shè)置到10000也生效(實(shí)測(cè))?
(6.7)Nacos環(huán)境隔離(根據(jù)namespace隔離)。
這個(gè)一般用于如上線、開(kāi)發(fā)等環(huán)境使用不同的環(huán)境隔離。?
1、添加命名空間。(在nacos控制臺(tái)(登錄的地方)添加命名空間)
2、配置服務(wù)所屬命名空間。(在配置文件中選擇要添加到哪個(gè)命名空間中?)
注意:a服務(wù)想要遠(yuǎn)程調(diào)用其他服務(wù),只能從注冊(cè)中心獲取a服務(wù)命名空間的服務(wù)。
(6.8)臨時(shí)實(shí)例和非臨時(shí)實(shí)例。
(6.9)Nacos與Eureka的區(qū)別。
獲取服務(wù):
eureka:pull(拉?。?/p>
nacos:pull(拉?。ush(主動(dòng)推送)
監(jiān)測(cè)服務(wù)健康狀態(tài):
?eureka:心跳模式
nacos:心跳模式、主動(dòng)監(jiān)測(cè)模式文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-489440.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-489440.html
到了這里,關(guān)于38.SpringCloud—注冊(cè)中心(eureka/nacos)、負(fù)載均衡Ribbon的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!