關(guān)于SpringCloud的微服務(wù)結(jié)構(gòu)及微服務(wù)遠程調(diào)用
一、微服務(wù)結(jié)構(gòu)
微服務(wù)這種方案需要技術(shù)框架來落地,全球的互聯(lián)網(wǎng)公司都在積極嘗試自己的微服務(wù)落地技術(shù)。在國內(nèi)最知名的就是SpringCloud和阿里巴巴的Dubbo。

微服務(wù)技術(shù)對比:
| Dubbo | SpringCloud | SpringCloudAlibaba | |
| 注冊中心 | zookeeper、Redis | Eureka、Consul | Nacos、Eureka |
| 服務(wù)遠程調(diào)用 | Dubbo協(xié)議 | Feign (http協(xié)議) | Dubbo、Feign |
| 配置中心 | 無 | SpringCloudfig | SpringCloudfig、Nacos |
| 服務(wù)網(wǎng)關(guān) | 無 | SpringCloudGateway、Zuul | SpringCloudGateway、Zuul |
| 服務(wù)監(jiān)控保護 | dubbo-admin、功能弱 | Hystix | Sentinel |
二、微服務(wù)遠程調(diào)用
根據(jù)訂單id查詢訂單功能:
需求:根據(jù)訂單id查詢訂單的同時,把訂單所屬的用戶信息一起返回

實現(xiàn)步驟:
1、注冊RestTemplate
在order-service的OrderApplication中注冊RestTemplate
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
/**
* 創(chuàng)建RestTemplate并注入Spring容器
* @return
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}2、服務(wù)遠程調(diào)用RestTemplate
修改order-service中的OrderService的queryOrderById方法:
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
// 1.查詢訂單
Order order = orderMapper.findById(orderId);
//2、利用RestTemplate發(fā)送http,查詢用戶
//2.1 url路徑
String url = "http://localhost:8081/user/"+order.getUserId();
//2。1 發(fā)送http請求,實現(xiàn)遠程調(diào)用
User user = restTemplate.getForObject(url,User.class);
//3.封裝user到Order
order.setUser(user);
// 4.返回
return order;
}
}微服務(wù)調(diào)用方式:
基于RestTemplate發(fā)起的http請求實現(xiàn)遠程調(diào)用
http請求做遠程調(diào)用時與語言無關(guān)的調(diào)用,只要知道對方的ip、端口、接口路徑、請求參數(shù)即可
提供者及消費者:
服務(wù)提供者:一次業(yè)務(wù)中,被其他微服務(wù)調(diào)用的服務(wù)(提供接口給其他微服務(wù))
服務(wù)消費者:一次業(yè)務(wù)中,調(diào)用其他微服務(wù)的服務(wù) (調(diào)用其他的微服務(wù)提供的接口)
服務(wù)調(diào)用關(guān)系:
服務(wù)提供者:暴露接口給其他微服務(wù)調(diào)用
服務(wù)消費者:調(diào)用其他微服務(wù)提供的接口
提供者與消費者角色是相對的
一個服務(wù)可以同時是服務(wù)提供者和服務(wù)消費者
到此這篇關(guān)于關(guān)于SpringCloud的微服務(wù)結(jié)構(gòu)及微服務(wù)遠程調(diào)用的文章就介紹到這了,更多相關(guān)SpringCloud 微服務(wù)結(jié)構(gòu)及調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot利用樹形結(jié)構(gòu)優(yōu)化查詢速度
這篇文章主要為大家詳細介紹了SpringBoot利用樹形結(jié)構(gòu)優(yōu)化查詢速度,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-08-08
springboot結(jié)合maven配置不同環(huán)境的profile方式
這篇文章主要介紹了springboot結(jié)合maven配置不同環(huán)境的profile方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
spring聲明式事務(wù) @Transactional 不回滾的多種情況以及解決方案
本文主要介紹了spring聲明式事務(wù) @Transactional 不回滾的多種情況以及解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Spring動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離詳解
這篇文章主要為大家詳細介紹了Spring動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07

