服務(wù)的提供者和消費(fèi)者 服務(wù)之間可以通過(guò)Spring提供的RestTemplate來(lái)進(jìn)行http請(qǐng)求去請(qǐng)求另一個(gè)Springboot的項(xiàng)目,這就叫做服務(wù)間的遠(yuǎn)程調(diào)用。 當(dāng)一個(gè)服務(wù)通過(guò)遠(yuǎn)程調(diào)用去調(diào)用另一個(gè)服務(wù)時(shí),被調(diào)用的服務(wù)就叫做服務(wù)的提供者,調(diào)用服務(wù)的服務(wù)就叫做服務(wù)的消費(fèi)者。 一個(gè)服務(wù)可以既是服務(wù)的提
服務(wù)之間可以通過(guò)Spring提供的RestTemplate來(lái)進(jìn)行http請(qǐng)求去請(qǐng)求另一個(gè)Springboot的項(xiàng)目,這就叫做服務(wù)間的遠(yuǎn)程調(diào)用。當(dāng)一個(gè)服務(wù)通過(guò)遠(yuǎn)程調(diào)用去調(diào)用另一個(gè)服務(wù)時(shí),被調(diào)用的服務(wù)就叫做服務(wù)的提供者,調(diào)用服務(wù)的服務(wù)就叫做服務(wù)的消費(fèi)者。一個(gè)服務(wù)可以既是服務(wù)的提供者也是服務(wù)的消費(fèi)者。
服務(wù)調(diào)用關(guān)系:
遠(yuǎn)程調(diào)用的問(wèn)題
eureka原理
搭建eurekaServer
服務(wù)注冊(cè)
服務(wù)發(fā)現(xiàn)
eureka的作用:
在eureka架構(gòu)中,微服務(wù)角色有兩類:
EurekaServer服務(wù)注冊(cè)
父工程引入對(duì)應(yīng)版本的springcloud依賴
springboot 3.1.5對(duì)應(yīng)
org.springframework.cloud
spring-cloud-dependencies
2022.0.4
pom
import
引入eureka服務(wù)端依賴
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
啟動(dòng)eureka服務(wù),在啟動(dòng)類上添加@EnableEurekaServer注解
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
配置文件中配置服務(wù)名稱-地址-服務(wù)端口
spring:
application:
name: eureka-server #微服務(wù)名稱
server:
port: 10086 #服務(wù)端口
eureka:
client:
service-url: #eureka地址信息 eureka自己也是一個(gè)微服務(wù),也會(huì)被注冊(cè)到eureka中 為了做eureka集群
defaultZone: http://127.0.0.1:10086/eureka
eureka服務(wù)端自己也會(huì)被注冊(cè)到eureka服務(wù)中
然后就可以訪問(wèn)http://127.0.0.1:10086進(jìn)入eureka注冊(cè)中心了
確保父工程成功引入cloud依賴后引入eureka服務(wù)端依賴
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
在配置文件中配置eureka服務(wù)名稱和地址即可
server:
port: 8081
spring:
application:
name: cloud-user
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
引入依賴
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
配置地址
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
給RestTemplate添加上@LoadBalanced注解,實(shí)現(xiàn)同一服務(wù)多個(gè)地址的負(fù)載均衡調(diào)用
//RestTemplate spring提供的遠(yuǎn)程調(diào)用模塊 允許發(fā)送http請(qǐng)求
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
使用RestTemplate不通過(guò)具體的ip地址而是通過(guò)服務(wù)名稱遠(yuǎn)程調(diào)用實(shí)現(xiàn)查詢
@Autowired
RestTemplate restTemplate;
@GetMapping("/order/all/{id}")
public ordersUser getAllById(@PathVariable("id") Integer id){
String str1 = "http://cloud-order/order/"+id;
orders od = restTemplate.getForObject(str1, orders.class);
String str = "http://cloud-user/user/"+od.getOrderuserid();
user forObject = restTemplate.getForObject(str, user.class);
ordersUser ordersUser = new ordersUser();
ordersUser.setOrderid(od.getOrderid());
ordersUser.setUser(forObject);
ordersUser.setOrdername(od.getOrdername());
ordersUser.setOrderaddress(od.getOrderaddress());
ordersUser.setOrderprice(od.getOrderprice());
ordersUser.setOrdernumber(od.getOrdernumber());
return ordersUser;
}
小編推薦閱讀
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對(duì)象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對(duì)比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)