eureka實現服務之間的呼叫
存在多個服務時,通過註冊中心實現服務間的呼叫。
1.搭建訂單服務工程
在父工程microservice-springcloud中,建立Maven子模組microservice-eureka-order。
<1>在pom.xml中,新增spring-cloud-starter-eureka依賴
<2>編寫配置檔案
<3>建立訂單實體類
<4>建立訂單控制器類
2.編寫使用者服務功能
<1>在microservice-eureka-user工程的引導類中建立spring例項,用於訪問Rest服務的客戶端例項。
<2>建立使用者控制類
3.啟動服務應用,測試服務呼叫
詳情:
1.搭建訂單服務工程
在父工程microservice-springcloud中,建立Maven子模組microservice-eureka-order。
<1>在pom.xml中,新增spring-cloud-starter-eureka依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<2>編寫配置檔案
server:
port:7900 #指定該Eureka例項的埠號
eureka:
instance:
prefe-ip-address:true #是否顯示主機的IP
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://registry:8761/eureka/ #指定Eureka服務端地址
spring:
application:
name:microservice-eureka-order #模組的名稱
<3>建立訂單實體類。建立com.itheima.spring.po包,並在包中建立訂單實體類Order。
public class order {
private String id;
private Double price;
private String receivePhone;
private String receiveAddress;
private String receiverName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getReceiverName() {
return receiverName;
}
public void setReceiverName(String receiverName) {
this.receiverName = receiverName;
}
public String getReceiveAddress() {
return receiveAddress;
}
public void setReceiveAddress(String receiveAddress) {
this.receiveAddress = receiveAddress;
}
public String getReceivePhone() {
return receivePhone;
}
public void setReceivePhone(String receivePhone) {
this.receivePhone = receivePhone;
}
@Override
public String toString(){
return "Order [id="+ id +",price="+price+","+"receiverName="+ receiverName +","+
"receiveAddress="+ receiveAddress +",receivePhone="+ receivePhone +"]";
}
}
<4>建立訂單控制器類
@RestController
public class OrderController {
/**
* 通過id查訂單
*/
@GetMapping("/order/{id}")
public String findOrderById(@PathVariable String id){
Order order = new order();
order.setId("123");
order.setPrice(23.5);
order.setreceiverAddress("beijing");
order.setreceiverName("xioaqiang");
order.setreceiverPhone("123456879");
return order.toString();
}
}
<5>在引導類中加入@EnableEurekaClient
2.編寫使用者服務功能
<1>在microservice-eureka-user工程的引導類中建立spring例項,用於訪問Rest服務的客戶端例項。
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
RestTemplate是spring提供的用於訪問Rest服務的客戶端例項,它提供了多種方便快捷訪問遠端Http服務的方法,能夠大大提高客戶端的編寫效率。
<2>建立使用者控制類,並在類中編寫查詢方法。
@RestController
public class UserController{
@Autowired
private RestTemplate restTemplate;
/*
*查詢與使用者相關的訂單
*/
@Getmapping("findOrdersByUser/{id}")
public String findOrdersByUser(@PathVariable String id){
//假設使用者只有一個訂單,並且訂單id為132
int oid = 123;
return this.restTemplate
.getForObject("http://localhost:79000/order/"+oid,String.class);
}
}
3.啟動服務應用,測試服務呼叫
通過瀏覽器訪問地址http:localhost:8000/findOrderByUser/1(1表示使用者id)。
相關文章
- eureka服務之間呼叫(3)
- Eureka的微服務之間呼叫微服務
- eureka踩過的坑之註冊服務相互之間呼叫
- Eureka微服務之間呼叫-feign微服務
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- 微服務學習小結-Eureka如何實現註冊中心,以及服務之間的註冊、呼叫微服務
- Eureka實現微服務的呼叫微服務
- Eureka-實現微服務的呼叫微服務
- 服務與服務之間的呼叫
- 微服務之Eureka服務發現微服務
- eureka如何管理服務呼叫
- 服務之間的呼叫 HTTP代替RPC?HTTPRPC
- Eureka實現服務註冊與發現
- 【Spring Cloud】Eureka實現微服務釋出與呼叫SpringCloud微服務
- 通過Eureka中已經註冊的服務名,呼叫服務
- SpringBoot+Eureka註冊中心+Feign進行微服務之間呼叫Spring Boot微服務
- springboot整合eureka,服務相互呼叫簡單示例Spring Boot
- Spring Cloud Eureka 實現服務註冊與發現SpringCloud
- 實現微服務預熱呼叫之後再開始服務(上)微服務
- 實現微服務預熱呼叫之後再開始服務(下)微服務
- YARP實現Dapr服務呼叫的反向代理
- sbc(二)高可用Eureka+宣告式服務呼叫
- 服務註冊與發現【Eureka】- Eureka簡介
- 微服務之間的相互呼叫微服務
- 服務註冊中心之Eureka使用
- SpringCloud之服務呼叫SpringGCCloud
- Eureka服務註冊與發現
- Spring Cloud服務發現元件EurekaSpringCloud元件
- C# 實現 gRPC 服務和呼叫C#RPC
- SpringCloud服務的註冊與發現(Eureka)SpringGCCloud
- SpringColud Eureka的服務註冊與發現SpringGC
- SpringCloud實戰 | 第五篇:SpringCloud整合OpenFeign實現微服務之間的呼叫SpringGCCloud微服務
- Spring Cloud Eureka 實現高可用服務發現註冊中心SpringCloud
- Node.js 連線到 Spring Eureka 實現服務發現Node.jsSpring
- Istio實踐(2)-流量控制及服務間呼叫
- ②SpringCloud 實戰:引入Feign元件,發起服務間呼叫SpringGCCloud元件
- Java使用HttpClient實現遠端服務呼叫JavaHTTPclient
- Spring cloud(2)-服務發現(Eureka,Consul)SpringCloud