微服务学习01——远程调用

分布式架构:

根据业务对系统功能进行拆分,每个业务模块作为独立项目开发,称为一个服务

优点:降低服务耦合   有利于服务升级拓展

缺点:难度大,架构复杂

微服务:

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免业务重复开发

面向服务:微服务对外暴露业务接口

自治:团队独立、技术独立、数据独立、部署独立

隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

优点:拆分粒度更细,服务更独立,耦合度更低

缺点:架构非常复杂,运维,监控,部署难度提高

 SpringCloud

SpringCloud是目前使用最广泛的微服务框架,集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验

远程调用

各个服务器之间进行方法调用,通过远程调用的方式来进行通信,springCloud基于RestTemplate发起的http请求实现远程调用

/*  在启动类里面
    * 创建RestTemplate并注入Spring容器
    */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
/*在业务层注入RestTemplate,调用getForObject()方法,设置路径和返回类型,实现远程调用*/

@Autowired
    private OrderMapper orderMapper;
    @Autowired
    private RestTemplate restTemplate;
    private User user;
 public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2利用RestTemplate发起http请求,查询用户
        //2.1 url路径
        String url="http://localhost:8081/user/" + order.getUserId();
        //2.2发送http请求,实现远程调用
        user = restTemplate.getForObject(url, User.class);
        //3 封装user到order
        order.setUser(user);
        // 4.返回
        return order;
    }

服务调用关系

  • 服务提供者:暴露接口给其他服务调用(被调用者)
  • 服务消费者:调用其他微服务提供的接口(调用者)
  • 提供者与消费者角色其实是相对的,一个服务可以同时是服务提供者和服务消费者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值