129、springcloud-eureka-client微服務的互相呼叫
這裡要寫的是springboot 訂單模組的服務去呼叫商品模組的服務進行下單操作
下面首先進行訂單模組的程式碼編寫
1、將order訂單模組註冊到註冊中心
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8181/eureka
spring:
application:
name: eureka-client-orders
server:
port: 8185
2、pom.xml檔案中新增
springcloud的feign依賴和
springboot的web依賴項
springcloud負載均衡的ribbon依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
3、在主類中建立負載均衡的restTemplate欄位
package pafc.cloud.eurekaclientorder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class EurekaClientOrderApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientOrderApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
4、微服務之間的呼叫,使用restTemplate進行呼叫
package pafc.cloud.eurekaclientorder.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import pafc.cloud.eurekaclientorder.domain.GoodItem;
import pafc.cloud.eurekaclientorder.domain.Order;
import pafc.cloud.eurekaclientorder.service.OrderService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class OrderServiceImpl implements OrderService {
@Autowired
public RestTemplate restTemplate;
@Override
public Object createOrder() {
Object allGoods = restTemplate.getForObject("http://eureka-client-goods/queryGoods/allGoods", Object.class);
Order orderItem = new Order();
List<Object> goodsLists = new ArrayList<Object>();
Map<String, GoodItem> allGoodsMap = (Map<String, GoodItem>) allGoods;
for (Map.Entry<String, GoodItem> item : allGoodsMap.entrySet()) {
goodsLists.add(item.getValue());
}
orderItem.setGoodsList(goodsLists);
orderItem.setId("001");
orderItem.setName("第一單");
orderItem.setPrice(98880.0);
return orderItem;
}
}
5、測試呼叫
相關文章
- 微服務互相呼叫-Feign微服務
- Eureka的微服務之間呼叫微服務
- 微服務之間的相互呼叫微服務
- Eureka實現微服務的呼叫微服務
- 被標記為事務的方法互相呼叫的坑(下)
- 被標記為事務的方法互相呼叫的坑(上)
- Spring Cloud之微服務之間相互呼叫、如何讓一個微服務呼叫另外一個微服務SpringCloud微服務
- Eureka-實現微服務的呼叫微服務
- 微服務呼叫元件 Feign微服務元件
- go微服務系列(三) - 服務呼叫(http)Go微服務HTTP
- 微服務之Eureka(二)服務中心互相註冊-Ribbon的結合使用微服務
- groovy與javah互相呼叫Java
- doc,view,frame互相呼叫View
- 應對微服務呼叫時的雪崩效應微服務
- 微服務之間的呼叫方式哪種最佳?微服務
- 微服務間的呼叫和應用內呼叫有啥區別微服務
- Eureka微服務之間呼叫-feign微服務
- 微服務呼叫鏈追蹤中心搭建微服務
- Unity——Js和Unity互相呼叫UnityJS
- 呼叫註冊到eureka server上的微服務,通過微服務名字呼叫,獲取服務例項慢或者失敗的問題Server微服務
- 微服務之間的呼叫(Ribbon與Feign)微服務
- 微服務架構之「 呼叫鏈監控 」微服務架構
- SpringCloud(一)微服務遠端呼叫 -- RestTemplateSpringGCCloud微服務REST
- Blazor+Dapr+K8s微服務之服務呼叫BlazorK8S微服務
- 微服務間的方法呼叫和應用內方法呼叫有啥區別微服務
- 微服務架構下的服務呼叫與鑑權——某保險公司微服務平臺實施案例分享微服務架構
- 兩個JS之間的函式互相呼叫JS函式
- 微服務呼叫鏈基本原理與使用微服務
- .NET Core微服務開發服務間呼叫篇-GRPC微服務RPC
- Js呼叫Java方法並互相傳參JSJava
- Spring Cloud微服務-基於Eureka的feign呼叫(1)SpringCloud微服務
- 二、Spring Cloud 之旅 -- Eureka 微服務的釋出與呼叫SpringCloud微服務
- 難住了,微服務之間的呼叫方式哪種更優?微服務
- Cocos Creator iOS 互相呼叫看我的就夠了iOS
- Kotlin的互操作——Kotlin與Java互相呼叫KotlinJava
- 微服務~Eureka實現的服務註冊與發現及服務之間的呼叫微服務
- net core 微服務框架 Viper 呼叫鏈路追蹤微服務框架
- 影片講解如何構建surging微服務呼叫微服務