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ù)載均衡注解: