-
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查询订单的同时,把订单所属的有用户信息一起返回
远程调用方式分析
微服务远程调用-查询订单
步骤:1).注册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?
原文始发于微信公众号(itmkyuan):认识微服务之初始SpringCloud
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/39369.html