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

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

實(shí)現(xiàn)步驟:
1、注冊(cè)RestTemplate
在order-service的OrderApplication中注冊(cè)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ù)遠(yuǎn)程調(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請(qǐng)求,實(shí)現(xiàn)遠(yuǎ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請(qǐng)求實(shí)現(xiàn)遠(yuǎn)程調(diào)用
http請(qǐng)求做遠(yuǎn)程調(diào)用時(shí)與語(yǔ)言無(wú)關(guān)的調(diào)用,只要知道對(duì)方的ip、端口、接口路徑、請(qǐng)求參數(shù)即可
提供者及消費(fèi)者:
服務(wù)提供者:一次業(yè)務(wù)中,被其他微服務(wù)調(diào)用的服務(wù)(提供接口給其他微服務(wù))
服務(wù)消費(fèi)者:一次業(yè)務(wù)中,調(diào)用其他微服務(wù)的服務(wù) (調(diào)用其他的微服務(wù)提供的接口)
服務(wù)調(diào)用關(guān)系:
服務(wù)提供者:暴露接口給其他微服務(wù)調(diào)用
服務(wù)消費(fèi)者:調(diào)用其他微服務(wù)提供的接口
提供者與消費(fèi)者角色是相對(duì)的
一個(gè)服務(wù)可以同時(shí)是服務(wù)提供者和服務(wù)消費(fèi)者
到此這篇關(guān)于關(guān)于SpringCloud的微服務(wù)結(jié)構(gòu)及微服務(wù)遠(yuǎn)程調(diào)用的文章就介紹到這了,更多相關(guān)SpringCloud 微服務(wù)結(jié)構(gòu)及調(diào)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot利用樹(shù)形結(jié)構(gòu)優(yōu)化查詢速度
這篇文章主要為大家詳細(xì)介紹了SpringBoot利用樹(shù)形結(jié)構(gòu)優(yōu)化查詢速度,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-08-08
springboot結(jié)合maven配置不同環(huán)境的profile方式
這篇文章主要介紹了springboot結(jié)合maven配置不同環(huán)境的profile方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
java實(shí)現(xiàn)砸金蛋抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)砸金蛋抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
spring聲明式事務(wù) @Transactional 不回滾的多種情況以及解決方案
本文主要介紹了spring聲明式事務(wù) @Transactional 不回滾的多種情況以及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Spring動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離詳解
這篇文章主要為大家詳細(xì)介紹了Spring動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

