微服务 松耦合_微服务-如何拆分

635b1fe2059ebf8c5104e1cb7906673a.png

一、如何拆功能

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

2. 关注点分离

  • 按职责(给服务进行分类,比如订单为一个服务、商品为一个服务)
  • 按通用性(比如消息服务、用户服务、业务服务,公共的服务)
  • 按粒度级别

二、服务和数据的关系

  • 先考虑业务的功能、再考虑业务功能对应的数据
  • 无状态服务

三、如何拆"数据"

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

微服务如果共享同一个数据存储,那将紧密耦合,例如,更改一个微服务表的结构,那么可能会导致另一个微服务出现问题,拥有自己数据库后,其他服务需要避免访问别人服务的数据库,切记别为了省事方便而去共享,一个服务所拥有的数据库,只能由该服务提供API来访问

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

  • 服务为用于展示大量类型应采用:nosql
  • 服务为搜索应采用:elasticsearch(ES)
  • 服务为对事务要求极高应采用关系型数据库,例如mysql

总之要根据功能和特点来选择合适的数据库类型。

3.难点在确定边界

  • 针对边界设计API
  • 依据边界权衡数据冗余
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值