Bootstrap

微服务划分的思考

为什么

微服务不是十全十美的,不是银弹,是什么原因导致必须要做微服务划分,是否有足够的动机支撑,是项目需要,还是领导的想法,公司层面是否有相应的规划。

拆分后的服务谁来维护,研发同学是否愿意参与

为什么,思考清楚了,接下来看还需要考虑怎么做

单体应用的不足

以上是单体服务面临的一些问题,但是不止于此。

微服务优点

微服务的核心价值在于以下几点:

微服务缺点

划分粒度

划分微服务的粒度不仅需要考虑研发资源,还要考虑服务本身的原子性、团队大小、团队人员的稳定性、服务的高可靠性要求等等。

参考阿里的粒度:人均服务数是 1.5 个左右,建议维护一个核心服务+变更较少的服务。

划分原则

  • 基础工具类

  • 通用服务能力

  • 独立jar

  • starter封装

  • 上下游解耦

  • 业务维度

  • 基础设施模块

  • MQ

  • 缓存层

衡量指标

改造成本

微服务改造是持续迭代的工程,需要考虑:

微服务基础设施

常用的一些微服务基础设施有:

关于技术选型:

  • 【1-6】一般考虑Springcloud全家桶

  • 【7】一般是Prometheus+grafana,

  • 【8】一般考虑Skywalking

  • 【9】一般是ELK

  • 【10】一般是自建或基于开源方案二次改造

  • 【11】一般自建

选型方案,最终都需要综合考虑,比如研发人员的熟悉程度,是否有足够的研发资源和价值去自研。

也可以直接上云,现在的云服务厂商基础设施都很完善。

参考