服务拆分原则

目录

一.什么时候拆分?

1.创业型项目

2.确定的大型项目

二.怎么拆分?

1.从拆分目标来说

2.从拆分方式来说


一.什么时候拆分?

1.创业型项目

先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。

举例:我现在看chatgpt正火,感觉能挣大钱,于是产生了一个点子,打算做一个网站。此时我们就可以采用单体架构,因为这样开发成本低、速度快,可以抢先chatgpt的风口。如果后续项目逐渐庞大,可以选择再拆成微服务。

2.确定的大型项目

资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。

举例:某大厂,一开始就资金充足、目标明确,上来就采用微服务架构搭建项目。

二.怎么拆分?

1.从拆分目标来说

  • 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。

举例:商品服务,应当只与商品有关,不要把订单相关的功能搞进来。将来升级、迭代商品服务时,需要修改的代码应当大量都在商品服务这个微服务中,而几乎不去动其他微服务。

  • 低耦合:每个微服务的功能要相对独立,尽量减少对其它微服务的依赖

举例:商品服务的核心功能应当只调用本微服务内的功能,而尽量别调用其他微服务。

一般做到了高内聚,同时也就自动做到了低耦合。

2.从拆分方式来说

  • 纵向拆分:按照业务模块来拆分

举例:黑马商城,按照业务模块,可拆分成商品、用户、订单、购物车等等几个微服务。每个微服务只做一个单独的业务,这是一种分布式的思想。

  • 横向拆分:抽取公共服务,提高复用性

举例:风控分析功能,可以应用在

        ①用户登录以后,需要记录用户登录的日志,如登录成功/失败,及其原因

        ②用户下单时,需要记录购买的行为,如:购买量是不是太多、支付方式和平时不一致等。

        以上两种场景,都需要风控分析功能,此时就可以把风控分析功能拆成一个微服务。

你可能感兴趣的:(SpringCloud,SpringCloud,微服务,服务拆分)