微服务到底如何拆?

服务到底如何拆、同一个接口为什么用微服务架构模式改造后的响应时间比单体应用的响应时间要长,而且服务变的不稳定。原本使用一个事物注解就能保障数据一致性,是如何保证的?需要什么措施可以保证?...显示全部

服务到底如何拆、同一个接口为什么用微服务架构模式改造后的响应时间比单体应用的响应时间要长,而且服务变的不稳定。原本使用一个事物注解就能保障数据一致性,是如何保证的?需要什么措施可以保证?

收起
参与23

查看其它 1 个回答尘世随缘的回答

尘世随缘尘世随缘技术总监上海某互联网金融公司

服务如何拆分
按照业务功能分解模式进行分解是最简单的,只需把业务功能相似的模块聚集在一起。比如:
用户管理:管理用户相关的信息,例如注册、修改、注销或查询、统计等。
商品管理:管理商品的相关信息。
业务功能分解模式另外的优势在于在初级阶段服务拆分不会太小 ,等到业务发展起来后可以再根据子域方式来拆分,把独立的服务再拆分成更小的服务,最后到接口级别服务。 以用户管理举例,在初始阶段的做服务拆分的时候,把用户管理拆分为用户服务,且具备了用户的增删改查功能,在互联网中流量获客是最贵的,运营团队通过互联网投放广告获客,用户在广告页上填写手机号码执行注册过程,如果此时注册失败或者注册过程响应时间过长,那么这个客户就可能流失了,但是广告的点击费用产生了,无形中形成了资源的浪费。当用户规模上升之后需要对增删改查功能做优先级划分,所以此时需要按方法维度来拆分服务,把用户服务拆分为用户注册服务(只有注册功能),用户基础服务(修改、查询用户信息)。
分布式后比单体应用时间长了
一个应用功能被拆分成多个服务之后,原本调用一个接口就能完成的功能如今变成需要调用多个服务,如果按顺序逐个调用的话,使用微服务改造后的接口会比原始接口响应时间更长, 因此要把原本串行调用的服务修改为并行调用,同时原本通过 SQL 的 join 多表联合查询操作变成单表操作,然后在聚合层的内存中做拼接。
分布式事物
使用MQ方案,通过柔性事物来解决数据最终一致性。

互联网服务 · 2020-04-24
浏览960

回答者

尘世随缘
技术总监上海某互联网金融公司
擅长领域: 云计算云原生微服务

尘世随缘 最近回答过的问题

回答状态

  • 发布时间:2020-04-24
  • 关注会员:3 人
  • 回答浏览:960
  • X社区推广