一、服务拆分注意事项
1.1 拆分原则
-
每个微服务,不要重复开发相同业务(例如在单体项目中用到了一个查询,这个查询功能能够查询出订单信息、商品信息、用户信息,那么在拆分微服务时就不要将其写在一起了,订单的微服务只做订单相关的事情,商品的微服务只做商品相关的事情)
- 微服务数据独立,不要访问其他微服务的数据库
- 微服务可以将自己的业务暴漏为接口,供其他调用
1.2 举例
单体架构项目可以参考按照功能模块拆分就可以,比如单体架构包含有支付功能、商品功能、用户功能、定单功能,那么将其拆分为四块就可以了,当然不同的场景对应不同的需求,这里只是举例而已。
二、案例Demo1
2.1 结构
2.2 启动两个项目
2.3 访问测试
以上就是微服务拆分的简单案例
三、案例Demo2(跨服务调用)
3.1 分析
- 跨服务调用在微服务中底层实现就是远程接口调用,注册RestTemplate只是简化了这个操作
- 需求:订单查询时如何把所属的用户信息一起返回
3.2 注册使用
(1)
(2)
四、微服务调用说明
- 基于RestTemplate发起的http请求实现远程调用只是将http接口调用简化了而已(其实所谓的分布式、微服务,这些都是http接口之间的来回调用。难的是各个接口之间的调用流程设计、框架设计、以及各个功能或服务之间的边界设计)
- http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可