第二节:服务拆分(案例)

一、服务拆分注意事项

1.1 拆分原则
  • 每个微服务,不要重复开发相同业务(例如在单体项目中用到了一个查询,这个查询功能能够查询出订单信息、商品信息、用户信息,那么在拆分微服务时就不要将其写在一起了,订单的微服务只做订单相关的事情,商品的微服务只做商品相关的事情)
  • 微服务数据独立,不要访问其他微服务的数据库
  • 微服务可以将自己的业务暴漏为接口,供其他调用
1.2 举例

单体架构项目可以参考按照功能模块拆分就可以,比如单体架构包含有支付功能、商品功能、用户功能、定单功能,那么将其拆分为四块就可以了,当然不同的场景对应不同的需求,这里只是举例而已。

二、案例Demo1

2.1 结构

第二节:服务拆分(案例)_第1张图片

 2.2 启动两个项目

第二节:服务拆分(案例)_第2张图片

 2.3 访问测试

第二节:服务拆分(案例)_第3张图片

第二节:服务拆分(案例)_第4张图片

以上就是微服务拆分的简单案例

三、案例Demo2(跨服务调用)

3.1 分析
  • 跨服务调用在微服务中底层实现就是远程接口调用,注册RestTemplate只是简化了这个操作
  • 需求:订单查询时如何把所属的用户信息一起返回

第二节:服务拆分(案例)_第5张图片

3.2 注册使用

(1)

第二节:服务拆分(案例)_第6张图片

 (2)

第二节:服务拆分(案例)_第7张图片四、微服务调用说明

  • 基于RestTemplate发起的http请求实现远程调用只是将http接口调用简化了而已(其实所谓的分布式、微服务,这些都是http接口之间的来回调用。难的是各个接口之间的调用流程设计、框架设计、以及各个功能或服务之间的边界设计)
  • http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可

你可能感兴趣的:(java,运维,开发语言,spring,cloud,mybatis,servlet,eclipse)