微服务就是“垃圾分类”。很像没吃完的盒饭分解到不同的垃圾桶中,垃圾桶相对独立,可以随时替换。因此不分什么前后端,你只关心放什么颜色桶里。
优点,有效解决单体软件随着时间的推移的维护灾难,可按需加载,最大程度释放系统资源。跟开发语言无关,采用容器化独立部署,无论使用什么开发语言都可无缝集成。可以细粒度拆分软件项目,完美的持续集成。
缺点,微服务是一个分布式系统,如果拆分粒度过细,容易形成连环故障。各模块之间需要维护数据的一致性,要规划好通信,对整个系统架构要求比较高。在测试层面来讲,相对单体软件,测试工作量有一定程度的增加。应用部署相对来说比较复杂一点。
适用场景,业务层面,应对多客户需求,通常每个客户总有一部分需求是不一样的。性能层面,应对高并发、高负载。
总之,软件互联网行业知识体系更新比较频繁,新概念、新技术层出不穷,我们探其本质,不要被表象所迷惑。机械科班出身的IT人共勉。