栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

认识微服务之初识SpringCloud

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

认识微服务之初识SpringCloud

  • SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud
  • SpringCloud集成了各种微服务功能组件,并且基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

  • SpringCloud与SpringBoot的版本兼容如下:

服务拆分及远程调用
  • 服务拆分
  • 服务调用

服务拆分注意事项:
1.不同微服务,不要重复开发相同业务
2.微服务数据独立,不要访问其他微服务的数据库
3.微服务可以将自己的业务暴露为接口,供其他微服务调用


导入服务拆分Demo
1.导入工程:cloud-demo
2.项目结构


3.将cloud-order.sql和cloud-user.sql导入数据库中


启动cloud-demo,根据id查询

微服务远程调用

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


远程调用方式分析


微服务远程调用-查询订单
步骤:注册RestTemplate
在order-service的OrderApplication中注册RestTemplate

@RestController
@RequestMapping("order")
public class OrderController {

   @Autowired
   private OrderService orderService;

    @GetMapping("{orderId}")
    public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
        // 根据id查询订单并返回
        return orderService.queryOrderById(orderId);
    }
}

修改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发起http请求,查询用户
        //2.1 url路径
        String url="http://localhost:8081/user/"+order.getUserId();
        User user = restTemplate.getForObject(url, User.class);
        order.setUser(user);
        // 4.返回
        return order;
    }
}

微服务调用方式
1.基于RestTemplate发起的http请求实现远程调用
2.http请求远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可

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

服务提供者:暴露接口给其他微服务调用
服务消费者:调用其他微服务提供的接口
提供者与消费者角色是相对的
一个服务可以同时是服务提供者和服务消费者

感谢参与

视频地址:https://www.bilibili.com/video/BV1LQ4y127n4?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号