当前位置:   article > 正文

微服务结构及微服务远程调用

微服务远程调用

目录

一、微服务结构

二、微服务远程调用


一、微服务结构

        微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo

7feafa50fef54ae39dd6d4d0ccfd4fc8.png

 微服务技术对比:

 DubboSpringCloudSpringCloudAlibaba
注册中心zookeeper、RedisEureka、ConsulNacos、Eureka
服务远程调用Dubbo协议Feign (http协议)Dubbo、Feign
配置中心SpringCloudfigSpringCloudfig、Nacos
服务网关SpringCloudGateway、ZuulSpringCloudGateway、Zuul
服务监控保护dubbo-admin、功能弱HystixSentinel

二、微服务远程调用

根据订单id查询订单功能:

需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回

37d25868dda94807be3cfa680aaa5948.png

 实现步骤:

1、注册RestTemplate

在order-service的OrderApplication中注册RestTemplate

  1. @MapperScan("cn.itcast.order.mapper")
  2. @SpringBootApplication
  3. public class OrderApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(OrderApplication.class, args);
  6. }
  7. /**
  8. * 创建RestTemplate并注入Spring容器
  9. * @return
  10. */
  11. @Bean
  12. @LoadBalanced
  13. public RestTemplate restTemplate(){
  14. return new RestTemplate();
  15. }
  16. }

2、服务远程调用RestTemplate

修改order-service中的OrderService的queryOrderById方法:

  1. @Service
  2. public class OrderService {
  3. @Autowired
  4. private OrderMapper orderMapper;
  5. @Autowired
  6. private RestTemplate restTemplate;
  7. public Order queryOrderById(Long orderId) {
  8. // 1.查询订单
  9. Order order = orderMapper.findById(orderId);
  10. //2、利用RestTemplate发送http,查询用户
  11. //2.1 url路径
  12. String url = "http://localhost:8081/user/"+order.getUserId();
  13. //21 发送http请求,实现远程调用
  14. User user = restTemplate.getForObject(url,User.class);
  15. //3.封装user到Order
  16. order.setUser(user);
  17. // 4.返回
  18. return order;
  19. }
  20. }

微服务调用方式:

基于RestTemplate发起的http请求实现远程调用

http请求做远程调用时与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可

提供者及消费者:

服务提供者:一次业务中,被其他微服务调用的服务(提供接口给其他微服务)

服务消费者:一次业务中,调用其他微服务的服务 (调用其他的微服务提供的接口)

服务调用关系:

服务提供者:暴露接口给其他微服务调用

服务消费者:调用其他微服务提供的接口

提供者与消费者角色是相对

一个服务可以同时是服务提供者和服务消费者

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/84514
推荐阅读
相关标签
  

闽ICP备14008679号