1、遠(yuǎn)程調(diào)用出現(xiàn)的問題
1、 服務(wù)消費(fèi)者該如何獲取服務(wù)提供者的地址信息?
2、如果有多個服務(wù)提供者,消費(fèi)者該如何選擇?
3、 消費(fèi)者如何得知服務(wù)提供者的健康狀態(tài)?

2、Eureka的作用

1、消費(fèi)者該如何獲取服務(wù)提供者具體信息?
服務(wù)提供者啟動時向eureka注冊自己的信息;
Eureka保存這些信息;
消費(fèi)者根據(jù)服務(wù)名稱向eureka拉取提供者信息。
2、如果有多個服務(wù)提供者,消費(fèi)者該如何選擇?
服務(wù)消費(fèi)者利用負(fù)載均衡算法,從服務(wù)列表中挑選一個
3、消費(fèi)者如何感知服務(wù)提供者健康狀態(tài)?
服務(wù)提供者會每隔30秒向eurekaServer發(fā)送一次心跳請求,報告健康狀態(tài);
Eureka會更新記錄服務(wù)列表信息,心跳不正常會被剔除;
消費(fèi)者即可以拉取到最新信息
3、總結(jié)
在eureka架構(gòu)中,微服務(wù)角色有兩類:
(1)eurekaServer:服務(wù)端,注冊中心
① 記錄服務(wù)信息
② 心跳監(jiān)控
(2)eurekaClient:客戶端
服務(wù)提供者,例如案例中的user-service
① 注冊自己的信息到eurekaServer
② 每隔30秒向eurekaServer發(fā)送心跳
服務(wù)消費(fèi)者,例如案例中的order-service
① 根據(jù)服務(wù)名稱從eurekaServer拉取服務(wù)列表;
② 基于服務(wù)列表做負(fù)載均衡,選中一個微服務(wù)后發(fā)起遠(yuǎn)程調(diào)用
4、eureka注冊中心搭建

1、搭建eurekaServer服務(wù)
(1)創(chuàng)建項(xiàng)目,引入spring-cloud-starter-netflix-eureka-server的依賴

(2)編寫啟動類,添加@EnableEurekaServer注解

(3)添加application.yml文件,編寫下面的配置

總結(jié):
引入eureka-server依賴,添加@EnableEurekaServer注解,在application.yml中配置eureka地址
2、注冊user-service
(1)在user-service項(xiàng)目引入spring-cloud-starter-netflix-eureka-client的依賴

(2)在application.yml文件,編寫下面的配置

另外,我們可以將user-service多次啟動, 模擬多實(shí)例部署,但為了避免端口沖突,需要修改端口設(shè)置:

3、order-service完成服務(wù)注冊
order-service雖然是消費(fèi)者,但與user-service一樣都是eureka的client端
(1)在order-service項(xiàng)目引入spring-cloud-starter-netflix-eureka-client的依賴

(2)在application.yml文件,編寫下面的配置:

4、在order-service完成服務(wù)拉取
服務(wù)拉取是基于服務(wù)名稱獲取服務(wù)列表,然后在對服務(wù)列表做負(fù)載均衡
(1)修改OrderService的代碼,修改訪問的url路徑,用服務(wù)名代替ip、端口:

2、在order-service項(xiàng)目的啟動類OrderApplication中的RestTemplate添加負(fù)載均衡注解:
