微服务如何拆分

a 夏天 提交于 2020-12-29 11:03:24

一、微服务如何拆分

1、先明白起点和终点

2、需要考虑的因素和坚持的原则

 

二、起点和终点

1、起点

     既有架构的形态

2、终点

  好的架构不是设计出来的,而是进化而来的。

  一直在演进

 

三、不适合上微服务的

1、系统中包含很多很多强事务场景的

2、业务相对稳定,迭代周期长

3、访问压力不大,可用性要求不高

 

四、如何拆功能

1、单一职责,松耦合,高内聚

2、关注点分离

  按职责

  按通用性

  按粒度级别

 

六、服务拆分方法

服务和数据的关系

  先考虑业务功能,再考虑数据

       无状态服务(一个数据被多个服务共享)

 

七、如何拆分“数据”

1、每个微服务都有单独的数据存储

2、依据服务特点选择不同结构的数据库类型

  依据服务的功能特点,选择合适的数据库。

     1)有些前置服务使用node开发,主要是展示类型的数据,对事务要求不高。那这个服务可以考虑NoSql的MongoDB

     2)比如服务是做搜索类型的,我们可以优先考虑elasticsearch。

      3) 对事务要求高的,优先考虑支持事务的关系型数据库,如MySql

3、难点在确定边界。

4、针对边界设计API

5、依据边界权衡数据冗余

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!